PyQt 是一个强大的 Python 库,用于创建图形用户界面(GUI),可以用来代替 Python 内置的 Tkinter。
PyQt 是 Qt 框架的 Python 绑定,广泛应用于桌面应用程序开发。
Qt 是一个跨平台的 C++ 应用程序开发框架。
PyQt 允许 Python 开发者利用 Qt 库创建功能强大的 GUI 应用程序。
PyQt 有以下几个主要版本:
安装 PyQt
使用 pip 安装 PyQt5:
# 安装PyQt5 pip install PyQt5 # 安装Qt设计师和其他工具(可选) pip install PyQt5-tools
第一个 PyQt 程序
创建简单窗口
以下是一个最基本的 PyQt 程序,创建一个空白窗口:
代码解析
QApplication
QWidget
setWindowTitle()
setGeometry()
show()
app.exec_()
一个典型的PyQt应用程序包含以下部分:
常用 PyQt 组件
按钮(QPushButton)
标签(QLabel)
文本框(QLineEdit)
更多常用组件内容参考:http://lib.uml.com.cn/ebook/python3.x/python3-pyqt-widgetsw.asp
布局管理(QVBoxLayout)
使用布局管理器可以自动调整组件位置:
更多布局管理内容参考:http://lib.uml.com.cn/ebook/python3.x/python3-pyqt-layout.asp
信号与槽机制
PyQt 使用信号(Signal)和槽(Slot)机制处理事件。
PyQt 的信号和槽机制是用于对象之间通信的核心机制。
自定义信号
更多布局管理内容参考:http://lib.uml.com.cn/ebook/python3.x/python3-pyqt-signals-and-slotsw.asp
使用 Qt Designer
Qt Designer 是一个可视化设计工具,可以拖放组件来设计界面:
将 .ui 文件转换为 Python 代码:
pyuic5 input.ui -o output.py
在代码中使用生成的界面:
实战:简单的记事本应用
界面设计
PyQt5 核心组件
大多数组件位于 PyQt5.QtWidgets。
高级功能(如多媒体、网络)可能需要其他模块(如 QtCore, QtGui, QtNetwork 等)。
QListView/QTableView/QTreeView 需要搭配数据模型(如 QStandardItemModel)使用,灵活性更高。
其他安装扩展:
pip install PyQtWebEngine # 网页支持 pip install PyQtChart # 图表支持
QtWidgets
QMainWindow
QDialog
QVBoxLayout
QHBoxLayout
QGridLayout
QFormLayout
QPushButton
QRadioButton
QCheckBox
QToolButton
QLineEdit
QTextEdit
QPlainTextEdit
QSpinBox
QDoubleSpinBox
QComboBox
QDateEdit
QTimeEdit
QDateTimeEdit
QSlider
QDial
QLabel
QLCDNumber
QProgressBar
QStatusBar
QGroupBox
QTabWidget
QStackedWidget
QScrollArea
QMdiArea
QListWidget
QTreeWidget
QTableWidget
QListView
QTableView
QTreeView
QMenuBar
QMenu
QToolBar
QAction
QFileDialog
QColorDialog
QFontDialog
QInputDialog
QMessageBox
QGraphicsView
QGraphicsScene
QCalendarWidget
QSplashScreen
QSystemTrayIcon
QWebEngineView
QtWebEngineWidgets
PyQtWebEngine
学习资源