首页 > 解决方案 > Qt resize:为小部件设置固定大小,需要根据屏幕大小调整大小

问题描述

我正在 Qtcreator 中开发一个需要根据屏幕大小调整大小的桌面应用程序。我已经知道如何获取屏幕尺寸。但是,我还没有全屏开发它,因为我想设置一个最佳的中间尺寸并在以后调整它的大小。

我已使用“setfixedsize()”函数为父窗口(即 1370px、768px)和所有子窗口小部件设置了固定大小,应用程序看起来很棒。但现在我为父窗口设置了另一个固定大小(即 1920px,1080px),并且子窗口小部件没有按比例扩展。我希望它们根据父窗口的大小进行扩展和缩小。

我在为所有子小部件设置固定大小方面做得对吗?或者这就是问题所在?使用这种调整大小功能在 Qt 中开发应用程序的正确方法是什么?

多谢你们。

Ps:对不起英文。

标签: qtresize

解决方案


您应该仅为主小部件设置固定大小。子小部件的大小应使用布局确定。

QWidget* mainWidget = new QWidget;
QVBoxLayout* vBoxLayout = new QVBoxLayout(mainWidget);
QWidget* firstChildWidget = new QLabel("first widget");
QWidget* secondChildWidget = new QLabel("second widget");
QWidget* thirdChildWidget = new QLabel("third widget");
vBoxLayout->addWidget(firstChildWidget);
vBoxLayout->addWidget(secondChildWidget);
vBoxLayout->addWidget(thirdChildWidget);
mainWidget->setFixedSize(400, 400);
mainWidget->show();

推荐阅读