Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/158.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++ 缩放动态添加的小部件_C++_Qt - Fatal编程技术网

C++ 缩放动态添加的小部件

C++ 缩放动态添加的小部件,c++,qt,C++,Qt,我有一个函数,它有一个指向小部件的指针作为参数。在函数中,我将小部件添加到框架的布局中。我希望以最大尺寸缩放小部件,因为我不希望让它调整框架的大小 void resizeWidget(QWidget *drawingBoard) { QSize widgetSize = drawingBoard -> size(); widgetSize.scale(100, 100, Qt::KeepAspectRatio); drawingBoard -> setFixe

我有一个函数,它有一个指向小部件的指针作为参数。在函数中,我将小部件添加到框架的布局中。我希望以最大尺寸缩放小部件,因为我不希望让它调整框架的大小

void resizeWidget(QWidget *drawingBoard)
{
    QSize widgetSize = drawingBoard -> size();
    widgetSize.scale(100, 100, Qt::KeepAspectRatio);
    drawingBoard -> setFixedSize(widgetSize);
    ui->layPieceFrameContainerLayout -> addWidget(drawingBoard);
}

问题是小部件在框架中显示时被分割且不完整(框架以全尺寸显示,尺寸为400 x 400)。如果我不缩放显示小部件,则小部件已完成。有人看到解决方案了吗?

这个问题与其他问题有什么不同?这是我的问题。当我尝试另一种方法时,我发现我有另一个问题。我希望得到修复,因此我提出了两种需要不同解决方案的方法。请记住,
QLayout
不会调整它所包含的顶级窗口的大小,除非设置大小约束。参见例如和。因此,如果小部件的大小太大,无法放入封闭窗口中,则在设置约束之前,布局不会对其进行任何处理。一旦打开,窗口将调整大小。对于在窗口出现之前创建的小部件,该约束是不必要的:窗口将以足够大的大小开始以适应内容。这让你大吃一惊。这个问题可能与我的问题有什么不同。当我尝试另一种方法时,我发现我有另一个问题。我希望得到修复,因此我提出了两种需要不同解决方案的方法。请记住,
QLayout
不会调整它所包含的顶级窗口的大小,除非设置大小约束。参见例如和。因此,如果小部件的大小太大,无法放入封闭窗口中,则在设置约束之前,布局不会对其进行任何处理。一旦打开,窗口将调整大小。对于在窗口出现之前创建的小部件,该约束是不必要的:窗口将以足够大的大小开始以适应内容。那把你甩了。