[TOC]
文本类控件
文本类控件主要用来显示或者编辑文本信息,主要有Label、LineEdit、TextEdit、SpinBox、DoubleSpinBox、LCDNumber
Label:标签控件
主要用于显示用户不能编辑的文本,标识窗体上的对象,添加描述信息,对应QLabel类
常用方法
lab.setText(text)
1 2 3 4
|
lab.setAlignment(QtCore.Qt.AlignLeft|QtCore.Qt.AlignVCenter)
|
标签宽度不足情况下,系统会默认只显示部分文字。所以需要设置标签中的文本换行显示。
直接在setText()方法中使用HTML中的标签设置超链接文本,然后将Label标签的setOpenExternalLinks()设置为True
1 2
| lab.setText("<a href='https://www.bilibili.com/'>bilibili</a>") lab.setOpenExternalLinks(True)
|
1 2 3
| from PyQt5.QtGui import QPixmap lab.setPixmap(QPixmap('test.png'))
|
LineEdit:单行文本框
常用方法
1
| ledit.setPlaceholderText(str)
|
1
| ledit.setAlignment(Horzontal,Vartical)
|
掩码通常由掩码字符和分隔符组成,后面可以跟一个分号和空白字符,空白字符在编辑完成后会从文本框中删除
日期掩码:0000-00-00;
时间掩码:00:00:00;
序列号掩码:>AAAAA-AAAAA-AAAAA-AAAAA-AAAAA;#
信号
1
| ledit.textChanged.connect(槽函数)
|
- 当文本框中的内容编辑结束时发射该信号,以按下Enter为编辑结束标志
1
| ledit.editingFinished.connect(槽函数)
|
TextEdit:多行文本框
常用方法
1 2
| tedit.setTextColor(QtGui.QColor(255,0,0)) #需要一个QColor对象
|
1 2
| tedit.setTextBackgroundColor(QtGui.QColor(255,0,0)) #需要一个QColor对象
|
按钮类控件
按钮类控件主要用来执行一些命令操作,主要有PushButton、ToolButton、CommandLinkButton、RadioButton和CheckBox
定义
button = QPushButton('&Download', self)

常用方法
1 2 3 4 5
| from PySide2.QtCore import Qt,QSize from PySide2.QtGui import QIcon
pbtn.setIcon(QtGui.QIcon('icon_path')) pbtn.setIconSize(Qt.Core.QSize(int width,int height))
|
1 2
| pbtn.setShortcut() # 参数可以设置为键盘中的按键或快捷键,例如'Alt+0'
|
信号
1
| pbtn.clicked.connect(槽函数)
|
对应QRadioButton类
常用方法
1 2 3
| rbtn.setChecked(True) # 或者 rbtn.setCheckable(False)
|
信号
1 2
| # 常用 rbtn.toggled.connect()
|
进度条:ProgressBar
对应QProgressBar类
常用方法
1 2 3 4 5 6 7 8
| pgbar.setMinimum(int num)
pgbar.setMaximum()
pgbar.setRange()
pgbar.setValue()
|
1 2 3 4
|
pgbar.setLayoutDirection()
|

1 2 3
|
pgbar.setOrientation()
|
1
| pgbar.setInvertedAppearance()
|
1 2 3
|
pgbar.setTextDirection()
|
1 2 3 4 5 6
| pgbar.minimum()
pgbar.maximum()
pgbar.value()
|
信号
1
| pgbar.valueChanged.connect()
|
示例
![Image [3]](https://shenyunmomie.oss-cn-beijing.aliyuncs.com/imags/202307240442197.png)
对话框类
常用对话框有QMessageBox、QFileDialog、QInputDialog、QFontDialog和QColorDialog
QMessageBox:对话框
对话框种类
QMessageBox.information() |
消息对话框 |
QMessageBox.question() |
问答对话框 |
QMessageBox.warning() |
警告对话框 |
QMessageBox.critical() |
错误对话框 |
QMessageBox.about() |
关于对话框 |
使用方法:以消息对话框为例
1 2 3 4 5 6
| QMessageBox.information(QWidget, 'Title', 'Content', buttons, defaultbutton)
|

QMessageBox.about()关于对话框中不能指定按钮。
QMessageBox.about(QWidget, ‘Title’, ‘Content’)
QFileDialog: 文件对话框
该类继承自QDialog类,它允许用户选择文件或者文件夹,也允许用户遍历文件系统,以便选择一个或多个文件或者文件夹。
常用方法
1 2 3
| dir = QFileDialog() dir.getOpenFileName() dir.getOpenFileNames()
|
1
| dir.getExistingDirectory()
|
1 2
| dir.selectedFile() dir.selectedFiles()
|
else
QtCore
模块是非 GUI 的核心库。这个模块用来处理时间、文件、目录、各种类型的数据、流(stream)、URLs,mime 类型、线程和进程。 QtGui
有窗口系统集成、事件处理、2D图形,基本图像、字体、文本的类。 QtWidgets
有创建经典风格的用户界面的类。
QtDBus
是使用 D-Bus 处理 IPC 通讯的类。QtNetwork
是网络变成类,这些类使网络编程变得更容易,可移植性也更好,方便了 TCP/IP 和 UDP 服务端和客户端编程。 QtHelp
包含了创建、查看和搜索文档的类。
QtXml
包含了处理 XML 文件的类,实现了 SAX 和 DOM API。QtSvg
提供了显示 SVG 的类,可缩放矢量图形(SVG)是一种描述二维图像和图像应用的 XML 语言。QtSql
模块提供了数据库的类,QtTest
提供了可以对 PyQt6 应用进行单元测试的工具。