小工具和孩子一样大小?

时间:2013-10-17 13:24:11

标签: c++ qt user-interface resize widget

在Qt中,如何根据小孩的大小自动调整大小?

例如,如果我的QGroupBox包含QHBoxLayout,其中包含QPushButtonQGroupBox,我希望QPushButton自动计算它的大小,以便它并不比规范所有.ui s所需要的小一些。

理想情况下,我希望能够在Qt Designer中执行此操作,以便我可以创建一个QGroupBox文件,该文件已经知道如何调整.ui的大小,但是我也打算从QGroupBox文件中的类,并手动调整大小。

我尝试将QGroupBox置于其自己的布局中(使用和不使用间隔符),但这只是将{{1}}调整为尽可能小的尺寸,以便没有任何子项可见。

2 个答案:

答案 0 :(得分:1)

有两件事需要注意:

  1. 在组框中的子项上适当设置大小策略。你真的需要考虑按钮可以做什么 - 最有可能的是,你不希望按钮增长或缩小,因此将它们的大小策略设置为Fixed是正确的。您可以让按钮水平展开,因此MinimumExpanding的水平政策是一个选项。

  2. 在组框中的布局上设置尺寸约束,以根据您的目标进行操作:

    ui->groupbox->layout()->setConstraint(QLayout::SetMinAndMaxSize);
    
  3. 当然,groupbox将在其父窗口的某些布局中,但这并不重要。

答案 1 :(得分:0)

通过对QGroupBox进行子类化并覆盖sizeHint或其他大小调整函数来循环遍历子节点并计算最小边界矩形,您可能会获得最大的好运。根据组框的动态程度,管理与新窗口小部件的连接可能是一个小小的挑战。