- PyQt 教程
- PyQt - 首页
- PyQt - 简介
- PyQt - 环境搭建
- PyQt - Hello World
- PyQt 主要类
- PyQt - 使用 Qt Designer
- PyQt - 元对象
- PyQt 信号与槽
- PyQt - 信号和槽
- PyQt - 支持和信号
- PyQt - 未绑定和已绑定信号
- PyQt - 使用 PyQtSignal 创建新信号
- PyQt - 连接、断开和发射信号
- PyQt - 槽装饰器
- PyQt - 槽连接
- PyQt 布局
- PyQt - 布局管理
- PyQt - QBoxLayout
- PyQt - QGridLayout
- PyQt - QFormLayout
- PyQt - QHBoxLayout
- PyQt - QVBoxLayout
- PyQt - QStackedLayout
- PyQt - QGraphicsGridLayout
- PyQt - QGraphicsAnchorLayout
- PyQt - QGraphicsLayout
- PyQt - QGraphicsLinearLayout
- PyQt 基本控件
- PyQt - 基本控件
- PyQt - QLabel 控件
- PyQt - QLineEdit 控件
- PyQt - QPushButton 控件
- PyQt - QRadioButton 控件
- PyQt - QCheckBox 控件
- PyQt - QComboBox 控件
- PyQt - QSpinBox 控件
- PyQt - QMessageBox
- PyQt - QDialogButtonBox 控件
- PyQt - QFontComboBox 控件
- PyQt - QDoubleSpinBox 控件
- PyQt - QToolBox 控件
- PyQt - QDialog 类
- PyQt - QMessageBox
- PyQt - 多文档界面
- PyQt - 拖放操作
- PyQt 绘图 API
- PyQt - 绘图 API
- PyQt 数据库
- PyQt - 数据库操作
- PyQt 核心知识
- PyQt - BrushStyle 常量
- PyQt - QClipboard
- PyQt - QPixmap 类
- PyQt 有用资源
- PyQt - 快速指南
- PyQt - 有用资源
- PyQt - 讨论
PyQt 主要类
PyQt 模块
PyQt API 包含大量的类和方法。这些类定义在 20 多个模块中。以下是常用的一些模块:
序号 | 模块及描述 |
---|---|
1 |
QtCore 其他模块使用的核心非 GUI 类 |
2 |
QtGui 图形用户界面组件 |
3 |
QtMultimedia 低级多媒体编程类 |
4 |
QtNetwork 网络编程类 |
5 |
QtOpenGL OpenGL 支持类 |
6 |
QtScript 用于评估 Qt 脚本的类 |
7 |
QtSql 使用 SQL 进行数据库集成的类 |
8 |
QtSvg 用于显示 SVG 文件内容的类 |
9 |
QtWebKit 用于渲染和编辑 HTML 的类 |
10 |
QtXml 用于处理 XML 的类 |
11 |
QtAssistant 在线帮助支持 |
12 |
QtDesigner 用于扩展 Qt Designer 的类 |
PyQt 中的类
PyQt API 包含 400 多个类。QObject 类位于类层次结构的顶层。它是所有 Qt 对象的基类。此外,QPaintDevice 类是所有可绘制对象的基类。
QApplication 类管理 GUI 应用程序的主要设置和控制流程。它包含主事件循环,在该循环中处理和分派由窗口元素和其他来源生成的事件。它还处理系统范围和应用程序范围的设置。
QWidget 类继承自 QObject 和 QPaintDevice 类,是所有用户界面对象的基类。QDialog 和 QFrame 类也继承自 QWidget 类。它们有自己的子类系统。
下图显示了一些重要类及其继承关系。
这里列出了一些常用的控件:
以下是常用的控件。
序号 | 控件及描述 |
---|---|
1 |
QLabel 用于显示文本或图像 |
2 |
QLineEdit 允许用户输入一行文本 |
3 |
QTextEdit 允许用户输入多行文本 |
4 |
QPushButton 一个命令按钮,用于触发操作 |
5 |
QRadioButton 允许从多个选项中选择一个 |
6 |
QCheckBox 允许选择多个选项 |
7 |
QSpinBox 允许增加/减少整数值 |
8 |
QScrollBar 允许访问超出显示区域的控件内容 |
9 |
QSlider 允许线性更改绑定值。 |
10 |
QComboBox 提供一个下拉列表供用户选择 |
11 |
QMenuBar 包含 QMenu 对象的水平条 |
12 |
QStatusBar 通常位于 QMainWindow 底部,提供状态信息。 |
13 |
QToolBar 通常位于 QMainWindow 顶部或浮动。包含操作按钮 |
14 |
QListView 以 ListMode 或 IconMode 提供一个可选择的项目列表 |
15 |
QPixmap 用于在 QLabel 或 QPushButton 对象上显示的屏幕外图像表示 |
16 |
QDialog 模态或非模态窗口,可以将信息返回给父窗口 |
一个典型的基于 GUI 的应用程序的顶级窗口是由QMainWindow 控件对象创建的。上面列出的一些控件在其指定位置占据主窗口,而其他控件则使用各种布局管理器放置在中央控件区域。
下图显示了 QMainWindow 框架:
PyQt 中一些主要类的示例
1. QMainWindow:GUI 应用程序的基础
QMainWindow 代表主应用程序窗口,提供一个集中的中心来组织控件、菜单、工具栏等等。通过继承 QMainWindow,开发人员可以快速创建健壮的应用程序框架,而无需编写大量的样板代码。
from PyQt6.QtWidgets import QMainWindow, QApplication import sys class MainWindow(QMainWindow): def __init__(self): super().__init__() self.initUI() def initUI(self): # Initialize and configure UI elements self.setWindowTitle("PyQt Major Classes Demo") if __name__ == "__main__": app = QApplication(sys.argv) window = MainWindow() window.show() sys.exit(app.exec())
输出
2. QWidget:用户界面的构建块
在 PyQt 中,QWidget 用作构建用户界面的基本构建块。从按钮到文本输入,屏幕上的每个可见元素最终都源自 QWidget 类。
from PyQt6.QtWidgets import QMainWindow, QApplication, QWidget import sys class CustomWidget(QWidget): def __init__(self): super().__init__() self.initUI() def initUI(self): # Initialize and configure custom UI elements self.setWindowTitle("PyQt Qwidget class") if __name__ == "__main__": app = QApplication(sys.argv) window = CustomWidget() window.show() sys.exit(app.exec())
输出
3. QLabel、QPushButton 及其他:专用控件
除了 QMainWindow 和 QWidget 等核心类之外,PyQt 还提供了许多专门的控件,以满足不同的使用场景。QLabel 用于显示文本和图像,QPushButton 用于创建交互式按钮,而 QComboBox 和 QCheckBox 简化了用户输入和选择。
import sys from PyQt6.QtWidgets import QApplication, QMainWindow, QLabel, QPushButton, QVBoxLayout, QWidget class MainWindow(QMainWindow): def __init__(self): super().__init__() self.initUI() def initUI(self): self.setWindowTitle("PyQt Major Classes Demo") # Create QLabel label = QLabel("Hello, PyQt!") # Create QPushButton button = QPushButton("Click Me") button.clicked.connect(self.onButtonClick) # Create a vertical layout layout = QVBoxLayout() layout.addWidget(label) layout.addWidget(button) # Create a central widget and set the layout central_widget = QWidget() central_widget.setLayout(layout) self.setCentralWidget(central_widget) def onButtonClick(self): print("Button clicked!") if __name__ == "__main__": app = QApplication(sys.argv) window = MainWindow() window.show() sys.exit(app.exec())