c++ - 为什么 adjustSize 不会在 Qt 中调整 MainWindow 的大小?
问题描述
我有一个简单的应用程序。在 MainWindow 的构造函数中,我有:
_someWidget = new someWidgetClass(this);
_someWidget ->setFixedSize(700,700);
_someWidget ->move(50,50);
wid = new QWidget(this);
wid->move(800,800);
wid->setFixedSize(100,100);
centralWidget()->adjustSize();
adjustSize();
我想像这样调整 MainWindow 的大小,他的右下角应该是 的右下角wid
,所以我想将 MainWindow 的大小调整为他的内容。但adjustSize
不起作用。
我尝试添加sizeHint()
方法someWidgetClass
并返回他的大小,但这也无济于事。
解决方案
您应该为 设置一种布局centralWidget
,例如,我使用QGridLayout
. 然后在该布局中添加您的小部件:
auto _someWidget = new QWidget(this);
_someWidget->move(50, 50);
_someWidget->setFixedSize(700, 700);
centralWidget()->layout()->addWidget(_someWidget);
auto wid = new QWidget(this);
wid->move(800, 800);
wid->setFixedSize(100, 100);
centralWidget()->layout()->addWidget(wid);
centralWidget()->adjustSize();
adjustSize();
关于adjustSize功能:
调整小部件的大小以适合其内容。如果 sizeHint() 有效,则此函数使用 sizeHint(),即尺寸提示的宽度和高度为
>= 0
. 否则,它将大小设置为覆盖所有子小部件的子矩形(所有子小部件矩形的联合)。对于windows,屏幕尺寸也被考虑在内。如果 sizeHint() 小于 (200, 100) 并且尺寸策略正在扩展,则窗口将至少为 (200, 100)。窗口的最大尺寸是屏幕宽度和高度的 2/3。
推荐阅读
- c# - 将文件从 ListBox 中的路径复制到特定文件夹
- python-2.7 - 维度问题线性回归 Python scikit 学习
- javascript - 通过按下 CSS 中的按钮向下滚动
- c++ - C ++中的指针和引用之间是否存在任何开销差异
- xcode - 在 Xcode 10 中打开现有项目;源代码控制不起作用?
- css - Ionic 3 从 API/服务器加载 css
- amazon-web-services - AWS E2 实例网络服务器回复 AWS
- php - where 子句中的日期比较:在 mongodb 中与流明
- mysql - mysql如何查看不同列中具有相同数字的行
- mobile - Flutter 应用本地化方法