当我使用QWidget
来设计用户界面时,我对它的大小属性总是有点困惑。有size policy
,geometry
和hintSize
。
我只知道size policy
和hintSize
之间的关系:size policy
基于sizehint
。但我不知道这些属性之间的其他关系。
我希望有一个小部件,可以根据父窗口或主窗口大小自动更改大小。但我不知道如何使用这三个属性来完成这个目标。
答案 0 :(得分:3)
geometry:其父级中窗口小部件的当前位置和大小。例如,几何为(10,20,50,70)的小部件将位于父级内的位置(10,20),宽度为50,高度为70.
sizeHint:(可能是“hintSize”所指的)小部件的首选大小。重写此方法以更改它。
尺寸政策:当小工具放置在尺寸与其自身尺寸不同的容器中时,小工具的响应方式。大小政策是以下组合:
QSizePolicy::Maximum
]窗口小部件是否可以缩小到sizeHint
QSizePolicy::Minimum
]窗口小部件是否可以展开超过其sizeHint
和QSizePolicy::Expanding
]是否应展开小部件以填充额外的可用空间。小部件同时具有水平和垂直尺寸政策。
尽管如此,您可能正在寻找布局,这些布局会根据给定的规则自动调整其父级中的小部件。例如,要使窗口小部件填充其父窗口,请将父窗体的布局设置为QVBoxLayout
,然后将子窗口小部件添加到布局中。调整父级的大小后,子级将调整大小以自动适应。