代码之家  ›  专栏  ›  技术社区  ›  Seth Painter

在布局上调整qgraphicsView小部件的大小

  •  -1
  • Seth Painter  · 技术社区  · 6 年前

    这听起来像是一个以前在这里被问过的问题,但我似乎找不到我要找的东西。

    所以,我有一个包含qgraphicsView的垂直布局。我正在尝试实现一种功能,用户可以根据自己的需要调整视图的大小。就像在mspaint中一样,您可以为画布选择精确的大小。

    当我运行程序时,这在第一次运行时是完美的,在垂直布局上,我得到一个与我指定的大小完全相同的qgraphicsView,但是,当运行时调用resizecanvas函数时,我得不到相同的效果。

    相反,如果指定的值大于现有值(例如将800x600 qgraphicscene更改为400x300),则qgraphicsView的大小可能相同。

    或者,如果相反的情况是正确的(一个400x300的qgraphicsScene被更改为800x600),我将得到滚动条,而不是一个更大的qgraphicsView小部件。

    canvasScene = new QGraphicsScene(this);
    resizeCanvas(canvasWidth, canvasHeight);
    void MainWindow::resizeCanvas(int x, int y) {
        canvasWidth = x;
        canvasHeight = y;
        canvasScene->setSceneRect(100, 100, canvasWidth, canvasHeight);
        updateCanvas();
    }
    void MainWindow::updateCanvas() {
        ui->canvas->setScene(canvasScene);
    }
    

    如何使它调整实际的小部件的大小?

    1 回复  |  直到 6 年前
        1
  •  1
  •   Seth Painter    6 年前

    我的解决方案只是将qgraphicsView的几何设置为给定的新值