Qt | 设置部件大小 sizeHint、minimumSizeHint、sizePolicy、stretch factor

举报
黑兔子 发表于 2022/08/02 14:27:21 2022/08/02
【摘要】 设置部件大小方法详解。

环境: Qt Creator5.5.1

  • sizeHint:大小提示
    sizeHint 属性保存了部件的建议大小,对于不同的部件,默认拥有不同的 sizeHint;同一部件的 sizeHint 也有可能不同,大小随着部件内容的变化而变化。

  • minimumSizeHint:最小大小提示
    minimumSizeHint 保存了一个建议的最小大小提示,一般在布局中起作用。

  • sizePolicy:大小策略
    sizePolicy 保存了部件的默认布局行为,在水平和垂直两个方向分别起作用,控制着部件在布局管理器中的大小变化行为。说明部件在布局管理中的缩放方式。取值有:

Fixed:固定的;部件无法伸缩,它的大小只能是 sizeHint()的值。
Minimum:sizeHint()给部件设置一个最小值,部件最小不能小于这个值,但是部件可以被拉伸。
Maximum:sizeHint()给部件设置一个最大值,部件最大不能大于这个值,但是部件可以被压缩。
Preferred:优先的;sizeHint()提供给部件一个最佳大小,但是可以改变,可以拉伸或压缩。
Expanding:扩大的;sizeHint()提供给部件一个合适大小,部件可以被压缩,但是部件更倾向于被拉伸来获得更大的大小。
MinimumExpanding:sizeHint()提供给部件的大小是最小值,部件倾向于被拉伸来获得更大的大小。
Ignord:sizeHint()的值被忽略,部件将尽可能的被拉伸来获取更大的大小。
sizePolicy(大小策略)与 sizeHint(大小提示)的值是有关系的。

举例:
在 Qt Desiner 中拖一个 Spacer 出来,设置 Spacer 的 sizeHint 的宽度为 200,但是界面上的 Spacer 的宽度没有达到 200。可以看到这时它的 sizeType 属性设置的是 Expanding。
image.png

如果将它更改为 Fixed,这样界面上的 Spacer 马上变宽了,现在它的实际高度才是 sizeHint 的高度。
image.png

  • stretch factor:伸缩因子
    stretch factor 是用来设置部件间的比例的。图中 widget_title 是一个水平布局的 QWidget,其中有四个部件:
    image.png

所以在它的属性栏中的 layoutStretch 属性中就有四个数字,“0,0,0,0”
image.png

这四个数字代表了四个部件的宽度比例为 1:1:1:1,我们可以修改部件之间的比例关系,选中比例值,将值改为:“2,1,1,1”,这时,第一个部件就是其他三个部件的 2 倍宽度。

【版权声明】本文为华为云社区用户原创内容,未经允许不得转载,如需转载请自行联系原作者进行授权。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。