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

简介: 学习Qt中设置部件大小的方法。

环境: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。

网络异常,图片无法展示
|

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

网络异常,图片无法展示
|

- stretch factor:伸缩因子

stretch factor是用来设置部件间的比例的。图中widget_title是一个水平布局的QWidget,其中有四个部件:

网络异常,图片无法展示
|

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

网络异常,图片无法展示
|

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

目录
相关文章
|
7月前
|
算法 前端开发 C++
【Qt UI相关】Qt设置窗体或控件的背景色透明
【Qt UI相关】Qt设置窗体或控件的背景色透明
794 0
|
存储 Cloud Native Linux
C++Qt表格控件一些常用的设置封装
C++Qt表格控件一些常用的设置封装
|
7月前
Qt6学习笔记三(QMainWindow、菜单栏、工具栏、状态栏、铆接部件、核心部件)
Qt6学习笔记三(QMainWindow、菜单栏、工具栏、状态栏、铆接部件、核心部件)
202 0
|
5月前
QT设置widget背景图片
该内容介绍如何在Qt中为控件添加背景图片。主要方法包括:1) 在样式表中使用`border-image`属性指定控件及其背景图片;2) 使用调色板`QPalette`设置图片,但可能导致窗口显示不下;3) 在`paintEvent`中绘制图片,适合自定义绘图但不适用于子窗口;4) 通过覆盖一个大小与窗口相同的`QLabel`来设置背景图片,可实现动态背景。推荐使用样式表设置背景,简单高效且适合子窗口。
310 3
|
4月前
|
网络协议
【qt】TCP的监听 (设置服务器IP地址和端口号)
【qt】TCP的监听 (设置服务器IP地址和端口号)
255 0
|
7月前
|
数据库 开发者 Windows
QT 项目视图(QListView&QTreeView&QTableView)和项目部件(QListWidget&QTreeWidget&QTableWidget)详解-2
QT 项目视图(QListView&QTreeView&QTableView)和项目部件(QListWidget&QTreeWidget&QTableWidget)详解
|
7月前
|
XML 设计模式 JSON
QT 项目视图(QListView&QTreeView&QTableView)和项目部件(QListWidget&QTreeWidget&QTableWidget)详解-1
QT 项目视图(QListView&QTreeView&QTableView)和项目部件(QListWidget&QTreeWidget&QTableWidget)详解
|
数据安全/隐私保护
PyQt5-Qt Designer控件之间的伙伴关系和Tab顺序如何设置?
PyQt5-Qt Designer控件之间的伙伴关系和Tab顺序如何设置?
112 0
PyQt5-Qt Designer控件之间的伙伴关系和Tab顺序如何设置?
|
7月前
Mac系统下Qt程序图标设置方法
Mac系统下Qt程序图标设置方法
113 0
|
7月前
Qt 控件大小随着窗口的大小而变化设置
Qt 控件大小随着窗口的大小而变化设置
181 0