Qt 的小部件有 2 个属性决定它们可以有多小:
现在它们的基本区别似乎已经很清楚了:minimumSize限制小部件实际可以具有的大小,并且 Qt 不允许将大小设置得更小。如果设置的话,它也会覆盖minimumSizeHint。然后minimumSizeHint仅由布局使用,布局不会将小部件的大小调整为小于调整其内容大小时的大小。
现在我正在实现一个自定义小部件,没有任何问题,我开始想知道这一点。
问题:您为什么要使用mininumSizeHint?在什么情况下,您必须或想要使用它而不是总是使用minimumSize?为什么minimumSizeHint存在?
(如果答案是“是的,sizeHint一切都足够了”,那很好。)
我认为主要区别在于,minimumSize无论您是否喜欢,任何其他对象都可以随时更改它,因为所有 QWidget 都有公共setMinimumSize()功能;而您的小部件单独控制 . 返回的内容minimumSizeHint()。
作为自定义小部件的实现者,您总是希望覆盖minimumSizeHint()您的小部件是否具有您认为通常应该遵守的最小尺寸。这就是内置 Qt 小部件的作用。