【发布时间】:2013-12-18 03:14:28
【问题描述】:
谁能清楚解释这三个概念?有什么区别以及如何使用它们?
【问题讨论】:
标签: qt size constraints hint
谁能清楚解释这三个概念?有什么区别以及如何使用它们?
【问题讨论】:
标签: qt size constraints hint
在我理解 Qt 的布局管理之前,我也很困惑。根据其docs:
当您将小部件添加到布局时,布局过程如下:
所有小部件最初将根据它们的 QWidget::sizePolicy() 和 QWidget::sizeHint() 分配一定数量的空间。
如果任何小部件设置了拉伸因子,其值大于零,则它们将按其拉伸因子的比例分配空间(如下所述)。
如果任何小部件的拉伸因子设置为零,则只有在没有其他小部件需要空间时,它们才会获得更多空间。其中,空间首先分配给具有扩展大小策略的小部件。
分配的空间小于其最小尺寸(如果未指定最小尺寸,则为最小尺寸提示)的任何小部件都将分配其所需的最小尺寸。 (小部件不必有最小尺寸或最小尺寸提示,在这种情况下,拉伸因子是它们的决定因素。)
分配的空间超过其最大尺寸的任何小部件都将分配它们所需的最大尺寸空间。 (小部件不必有最大尺寸,在这种情况下,拉伸因子是它们的决定因素。)
而sizeHint()是QWidget的推荐大小,widget父级的Layout会考虑sizeHint()和sizePolicy()来确定子widget可以容纳的空间。
【讨论】:
尺寸提示是小部件的首选尺寸,布局会尽量保持它尽可能接近这个尺寸。
尺寸政策描述了当首选尺寸无法使用(可以拉伸或收缩)时尺寸可能发生的变化,请参阅QSizePolicy::Policy 枚举以了解每种尺寸的说明。
大小约束是小部件可以达到的最大尺寸和最小尺寸。
【讨论】:
maximumSize和maximumSizeHint之间的关系是什么?
maximumSize 和maximumSizeHint 分别指的是尺寸约束和尺寸提示。