在Qt中,如何根据小孩的大小自动调整大小?
例如,如果我的QGroupBox
包含QHBoxLayout
,其中包含QPushButton
个QGroupBox
,我希望QPushButton
自动计算它的大小,以便它并不比规范所有.ui
s所需要的小一些。
理想情况下,我希望能够在Qt Designer中执行此操作,以便我可以创建一个QGroupBox
文件,该文件已经知道如何调整.ui
的大小,但是我也打算从QGroupBox
文件中的类,并手动调整大小。
我尝试将QGroupBox
置于其自己的布局中(使用和不使用间隔符),但这只是将{{1}}调整为尽可能小的尺寸,以便没有任何子项可见。
答案 0 :(得分:1)
有两件事需要注意:
在组框中的子项上适当设置大小策略。你真的需要考虑按钮可以做什么 - 最有可能的是,你不希望按钮增长或缩小,因此将它们的大小策略设置为Fixed
是正确的。您可以让按钮水平展开,因此MinimumExpanding
的水平政策是一个选项。
在组框中的布局上设置尺寸约束,以根据您的目标进行操作:
ui->groupbox->layout()->setConstraint(QLayout::SetMinAndMaxSize);
当然,groupbox将在其父窗口的某些布局中,但这并不重要。
答案 1 :(得分:0)
通过对QGroupBox进行子类化并覆盖sizeHint或其他大小调整函数来循环遍历子节点并计算最小边界矩形,您可能会获得最大的好运。根据组框的动态程度,管理与新窗口小部件的连接可能是一个小小的挑战。