Qt如何计算小部件的大小?

时间:2013-05-30 00:37:02

标签: qt qt4 pyqt

当我使用QWidget来设计用户界面时,我对它的大小属性总是有点困惑。有size policygeometryhintSize

我只知道size policyhintSize之间的关系:size policy基于sizehint。但我不知道这些属性之间的其他关系。

我希望有一个小部件,可以根据父窗口或主窗口大小自动更改大小。但我不知道如何使用这三个属性来完成这个目标。

1 个答案:

答案 0 :(得分:3)

geometry:其父级中窗口小部件的当前位置和大小。例如,几何为(10,20,50,70)的小部件将位于父级内的位置(10,20),宽度为50,高度为70.

sizeHint:(可能是“hintSize”所指的)小部件的首选大小。重写此方法以更改它。

尺寸政策:当小工具放置在尺寸与其自身尺寸不同的容器中时,小工具的响应方式。大小政策是以下组合:

  • [QSizePolicy::Maximum]窗口小部件是否可以缩小到sizeHint
  • 以下
  • [QSizePolicy::Minimum]窗口小部件是否可以展开超过其sizeHint
  • [QSizePolicy::Expanding]是否应展开小部件以填充额外的可用空间。

小部件同时具有水平和垂直尺寸政策。


尽管如此,您可能正在寻找布局,这些布局会根据给定的规则自动调整其父级中的小部件。例如,要使窗口小部件填充其父窗口,请将父窗体的布局设置为QVBoxLayout,然后将子窗口小部件添加到布局中。调整父级的大小后,子级将调整大小以自动适应。