Designer中可以设置的QWidget属性共有31个,如下图所示
1 大小控制
组件大小控制的属性有geometry 、baseSize、sizeIncrement、minimumSize、maximumSize和sizePolicy。
geometry 定义了组件的初始大小,其他属性都与组件大小调整时控制组件的大小相关。
1.1 geometry属性
geometry 属性保存组件相对于其父级对象的位置和大小,Qt实际上是以一个长方形来表示组件的位置和大小的,包括左上角的坐标位置、长度和宽度。
当组件的geometry调整时,组件如果可见将立即接收moveEvent事件和/或调整大小事件resizeEvent事件。如果组件当前不可见,则保证它在显示之前接收适当的事件。如果组件的geometry被要求调整到超出minimumSize()和maximumSize()定义的范围之外时,则Qt会强制组件的大小必须在定义的范围内。
可以使用geometry()查询该属性的值,使用setGeometry(int x, int y, int w, int h)或setGeometry(QRect )设置该属性的值。与此属性关联的函数有: frameGeometry()、rect()、move()、resize()、 moveEvent()、resizeEvent()、minimumSize()和 maximumSize()。
注意: 1、 大小的单位是像素,相关数字不包括窗口框架占用的位置; 2、 Qt中组件的坐标是以组件的左上角为原点、x轴向右、y轴向下的坐标体系。
1.2 mimimumSize属性和maximumSize属性
mimimumSize表示部件能被缩小到的最小尺寸,单位为像素。部件的最小尺寸可以调用方法setMinimumSize(QSize)或setMinimumSize(int minw, int minh)进行设置,使用minimumSize()返回当前值,如果值被设置为QSize(0,0)则表示最小尺寸无效
maximumSize表示部件能被放大到的最大尺寸,部件的最大尺寸可以调用方法setMaximumSize(QSize)或setMaximumSize(int maxw, int maxh)进行设置,使用maximumSize()返回当前值,部件的最大值不能超过系统设置部件的最大值常量QWIDGETSIZE_MAX 。
1.3 sizePolicy属性
部件的sizePolicy属性用于说明部件在布局管理中的缩放方式,当部件没有在布局管理器中时,该设置无效。sizePolicy由四个值组成,分别是水平缩放策略、垂直缩放策略、水平伸缩因子、垂直伸缩因子。
水平缩放策略、垂直缩放策略的值都是枚举类型Policy,该枚举类型的取值及含义如下:
2 界面响应事件控制属性
界面响应事件控制属性是指针对组件对键盘、鼠标事件以及平板触控笔的事件响应的控制,它包括acceptDrops、contextMenuPolicy、cursor、enabled、focusPolicy、inputMethodHints、mouseTracking、tabletTracking、windowModality、windowTitle这9个属性。
2.1 enabled属性
enabled属性用于表示部件是否可用,一个可用的部件可以接收和处理鼠标和键盘事件,当部件不可用时则无法接收和处理鼠标和键盘事件。
有些部件在被禁用时会以不同的方式显示自己。例如,按钮可能会将其标签灰显。如果部件需要知道它何时被启用或禁用,则可以使用changeEvent()方法来捕获事件,事件类型设置为QEvent.EnabledChange。
禁用一个部件时会隐式禁用其所有子部件,启用部件时将顺序启用所有子部件,除非子部件已被显式禁用。
2.2 acceptDrops属性
acceptDrops属性表示当前部件是否接受鼠标拖放事件,如果部件接受拖放,则在鼠标拖放时,拖放事件会发送给鼠标当前光标下接受拖放的第一个部件。
2.3 contextMenuPolicy属性
contextMenuPolicy为部件的快捷菜单策略,快捷菜单通过在部件上点击鼠标右键触发。
通过contextMenuPolicy() 可以获取当前部件的快捷菜单策略;通过setContextMenuPolicy(Qt.ContextMenuPolicy policy)可以设置当前部件的快捷菜单策略
2.4 focusPolicy属性
设置部件的焦点策略
部件可以通过focusPolicy()可以获取当前部件的焦点策略,通过setFocusPolicy(Qt.FocusPolicy policy)设置焦点策略。
2.5 inputMethodHints属性
inputMethodHints 属性只对输入部件有效,输入法使用它来检索有关输入法应如何操作的提示,例如,如果设置了只允许输入数字的标志,则输入法可能会更改其可视组件,以反映只能输入数字。
2.6 cursor属性
cursor属性保存该部件的鼠标光标形状,当鼠标位于该部件上时就会呈现该属性设置的光标形状,对应类型为枚举类型Qt.CursorShape
3 信息管理属性
信息管理属性包括accessibleDescription、accessibleName、statusTip、toolTip、toolTipDuration、whatsThis、locale、windowFilePath、windowTitle这9个属性,这些属性与帮助、提示、窗口标题、残障人士辅助信息、语言国际化支持等方面,都与应用呈现给用户的文本信息有关
3.1 locale国际化支持
locale属性用于设置语言环境,包括语言和国家。如果一个部件没有设置语言环境,则使用父对象的语言环境或者默认语言环境(如果部件是顶层部件)。
3.2 toolTip属性
toolTip属性设置部件的toolTip提示信息,toolTip提示信息在鼠标放到控件上会浮动出一个小框显示提示信息。
3.2 windowTitle属性
windowTitle仅对window和dialog类型的对象生效。 windowTitle是窗口的标题,可以通过windowTitle() 、setWindowTitle(const QString &)进行读取和设置。
4 外观控制属性
外观控制属性包括autoFillBackground、font、layoutDirection、palette、styleSheet、windowIcon、windowOpacity这七个属性,基本都与部件的外观相关。
4.1 palette属性和字体font属性设置
注意:如果Qt Style Sheets与setFont()在同一个部件上使用,则如果设置冲突,样式表将优先。
4.2 windowIcon属性
只有窗口对象有效,其他派生对象如pushButtong对象无效。
4.3 windowOpacity属性
这个属性仅对window对象生效。 windowOpacity为浮点数,表示透明度,为1完全不透明,为0完全透明,缺省是1。
可以通过windowOpacity()、setWindowOpacity(qreal level)进行读取和设置。
4.4 autoFillBackground属性
autoFillBackground属性可以确认部件背景是否自动填充,如果自动填充,Qt会在调用Paint事件之前填充部件的背景。使用的颜色由部件调色板中的QPalette.window 颜色角色定义。此外,除非设置了WA_OpaquePaintEvent 或 WA_NoSystemBackground属性,否则窗口始终使用QPalette.Window对应颜色填充。
警告:在使用Qt Style Sheets时请小心使用此属性。当部件具有具有有效背景或边框图像的样式表时,此属性将自动禁用。
4.5 styleSheet属性
styleSheet属性是定义部件外观的属性样式表