Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/150.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 在布局上调整QGraphicsView小部件的大小_C++_Qt_Qgraphicsview_Qgraphicsscene - Fatal编程技术网

C++ 在布局上调整QGraphicsView小部件的大小

C++ 在布局上调整QGraphicsView小部件的大小,c++,qt,qgraphicsview,qgraphicsscene,C++,Qt,Qgraphicsview,Qgraphicsscene,这听起来像是一个以前在这里被问过的问题,但我似乎找不到我要找的东西 因此,我有一个包含QGraphicsView的垂直布局。我试图实现用户根据需要调整视图大小的功能。就像在MSPaint中一样,您可以为画布选择精确的大小 当我运行这个程序时,它第一次就可以完美地工作,在垂直布局上,我可以看到我指定的确切大小的QGraphicsView,但是,当在运行时调用函数resizeCanvas时,我没有得到相同的效果 相反,如果指定的值大于现有值,则QGraphicsView的大小将相同(如将800x60

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

因此,我有一个包含QGraphicsView的垂直布局。我试图实现用户根据需要调整视图大小的功能。就像在MSPaint中一样,您可以为画布选择精确的大小

当我运行这个程序时,它第一次就可以完美地工作,在垂直布局上,我可以看到我指定的确切大小的QGraphicsView,但是,当在运行时调用函数resizeCanvas时,我没有得到相同的效果

相反,如果指定的值大于现有值,则QGraphicsView的大小将相同(如将800x600 QGraphicsCenter设置为400x300)

或者,如果情况正好相反(一个400x300的QGraphicscene被更改为一个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);
}

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

我的解决方案只是将QGraphicsView的几何设置为给定的新值。请提供一个