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