PySide6————QWidget属性

本文详细介绍了QtDesigner中QWidget的各种属性,如大小控制(geometry,minimumSize,maximumSize,sizePolicy)、界面响应事件控制(如enabled,acceptDrops等)、信息管理(如locale,toolTip)和外观控制(如palette,font等),帮助开发者深入理解和应用这些属性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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属性是定义部件外观的属性样式表

### PySide6基础教程与入门指南 #### 安装PySide6 为了开始使用PySide6,首先需要安装这个库。可以通过pip命令来完成这一操作[^3]: ```bash pip install PySide6 -i https://pypi.douban.com/simple/ ``` 这会下载并安装最新版本的PySide6以及其依赖项。 #### 使用Qt Designer创建UI布局 对于希望采用可视化方式构建用户界面的人来说,Qt Designer提供了一个直观的设计环境。通过该工具可以轻松拖拽组件至窗体上,并设置各个控件的具体属性。在Windows操作系统中,如果已经正确安装了PySide6,则可以直接运行位于Python安装路径下的`Scripts/pyside6-designer.exe`文件启动Qt Designer;而对于使用Anaconda环境的朋友来说,在`\Anaconda3\Lib\site-packages\PySide6\designer.exe`位置也能找到对应的程序入口。 #### 掌握核心窗口类型 熟悉PySide6中的主要窗口类别是掌握此框架的关键之一。其中最常使用的三个类分别是`QMainWindow`, `QWidget` 和 `QDialog`。每一个都适用于不同的开发需求——比如当开发者想要建立一个具有菜单栏、状态栏等标准元素的应用主窗口时可以选择继承自`QMainWindow`; 若仅需简单的容器承载其他子部件则推荐利用`QWidget`; 而弹出对话框式的交互逻辑通常由`QDialog`负责处理[^2]。 #### 编写第一个应用程序实例 下面给出一段简单代码作为起点,演示如何基于上述介绍的内容快速搭建起一个具备基本功能的小型桌面应用: ```python from PySide6.QtWidgets import QApplication, QMainWindow, QLabel app = QApplication([]) window = QMainWindow() label = QLabel("Hello World", parent=window) label.setGeometry(10, 10, 100, 30) window.setWindowTitle('My First App') window.resize(300, 200) window.show() app.exec_() ``` 这段脚本展示了怎样初始化一个新的PySide6项目,定义顶层窗口及其内部构件的位置大小关系,并最终展示给终端用户查看。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值