任何人都可以清楚地解释这三个概念吗?有什么区别以及如何使用它们?
大小提示是小部件的首选大小,布局将尝试使其尽可能接近该大小。
大小策略描述了当无法使用首选大小(可以拉伸或缩小)时大小可能如何变化,请参见QSizePolicy::Policy枚举以获取每个的描述。
大小约束是小部件可以是的maximumSize和minimumSize。
在我了解Qt的布局管理之前,这也使我很困惑。根据其docs:
将小部件添加到布局时,布局过程如下:
所有小部件最初将根据其QWidget :: sizePolicy()和QWidget :: sizeHint()分配一定的空间。
如果任何窗口小部件都设置了拉伸因子,并且其值大于零,那么将按照其拉伸因子的比例分配空间(在下面说明)。
如果任何窗口小部件的拉伸系数设置为零,则只有在没有其他窗口小部件需要该空间时,它们才会获得更多空间。其中,首先使用扩展尺寸策略将空间分配给小部件。
分配给其小于最小大小的空间的任何窗口小部件(如果未指定最小大小,则分配最小大小的提示)被分配为其所需的最小大小。 (小部件不必具有最小尺寸或最小尺寸提示,在这种情况下,拉伸因子是其决定因素。)
任何分配了大于其最大大小的空间的小部件都会被分配它们所需的最大大小的空间。 (小部件不必具有最大大小,在这种情况下,拉伸因子是其决定因素。)
并且sizeHint()
是QWidget的建议大小,并且小部件父级的Layout
将考虑sizeHint()
和sizePolicy()
,以确定子级小部件可以容纳的空间。