4

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

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

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

4

1 回答 1

4

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

sizeHint:(可能是您所指的“hintSize”)小部件的首选尺寸。覆盖此方法以更改它。

尺寸策略:当小部件放置在尺寸与其自身不同的容器中时,它将如何响应。规模政策是以下各项的组合:

  • [ QSizePolicy::Maximum] 小部件是否可以缩小到其以下sizeHint
  • [ QSizePolicy::Minimum] 小部件是否可以在其之上扩展sizeHint,以及
  • [ QSizePolicy::Expanding] 小部件是否应该扩展以填充额外的可用空间。

小部件具有水平和垂直尺寸策略。


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

于 2013-05-30T00:56:08.800 回答