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
不会调整它所包含的顶级窗口的大小,除非设置大小约束。参见例如和。因此,如果小部件的大小太大,无法放入封闭窗口中,则在设置约束之前,布局不会对其进行任何处理。一旦打开,窗口将调整大小。对于在窗口出现之前创建的小部件,该约束是不必要的:窗口将以足够大的大小开始以适应内容。那把你甩了。