PPython模块开发,主要用于前三个板块,会详细讲解
C++ 模块开发,主要用于后三个板块,略过
1. QtCore - 核心功能模块
QtCore 是 PySide6 的基础模块,提供了所有 Qt 应用程序的核心功能,不依赖 GUI 组件,可用于控制台程序。
主要功能:
- 信号与槽(
Signal
、Slot
):Qt 事件处理的核心机制,用于对象间通信。- 自定义信号可以传递多种类型参数,也可以混合传参(用,隔开)
- 事件循环(
QEventLoop
):应用程序的主循环,处理用户输入和系统事件。 - 定时器(
QTimer
):用于定时执行任务。 - 数据类型与容器:如
QList
、QDict
、QString
等(兼容 Python 原生类型)。 - 文件与目录操作(
QFile
、QDir
)、日期时间(QDateTime
)、线程(QThread
)等。
2. QtWidgets - 传统桌面 UI 组件
QtWidgets 是开发传统桌面应用的核心模块,提供了丰富的可视化组件(按钮、窗口、表格等)和布局管理工具。
QApplication
是 PySide6 .QtWidgets 中管理应用程序生命周期、处理用户交互和系统事件的核心类。任何 PySide6 GUI 程序都必须创建且只能创建一个 QApplication
实例。
基础控件:
控件类名 | 功能描述 | 常用场景 |
---|
QPushButton | 按钮,支持点击事件,可设置文本或图标。 | 提交、确认、取消等操作 |
QCheckBox | 复选框,支持勾选 / 取消,可单独或组合使用(允许多选)。 | 选择多个选项(如 "记住密码") |
QRadioButton | 单选按钮,同一组中只能选择一个,需配合 QButtonGroup 管理分组。 | 从互斥选项中选择(如性别) |
QLineEdit | 单行文本输入框,支持输入限制(如密码模式、数字输入)。 | 用户名、密码、搜索框等 |
QTextEdit | 多行文本编辑框,支持富文本(字体、颜色等)和换行。 | 备注、文本编辑等 |
QSpinBox | 数字微调框,通过上下箭头或直接输入调整整数。 | 设置数量、年龄等整数参数 |
QDoubleSpinBox | 与 QSpinBox 类似,但支持浮点数。 | 设置精度要求高的数值(如价格) |
QSlider | 滑动条,通过拖动滑块选择数值,支持水平 / 垂直方向。 | 音量调节、亮度设置等 |
QComboBox | 下拉列表框,可选择预设选项或允许手动输入(setEditable(True) )。 | 选择列表中的选项(如城市) |
QDateTimeEdit | 日期 / 时间编辑框,支持选择日期、时间或 DateTime 组合。 | 设置生日、预约时间等 |
容器控件:
控件类名 | 功能描述 | 常用场景 |
---|
QWidget | 所有控件的基类,可作为容器使用(需配合布局管理器)。 | 自定义控件的基类 |
QFrame | 带边框的容器,支持多种边框样式(如虚线、实线),可用于分隔界面区域。 | 分组显示控件 |
QGroupBox | 带标题的分组容器,可折叠(setCheckable(True) ),常用于逻辑相关的控件分组。 | 表单中的选项分组(如 "个人信息") |
QTabWidget | 标签页容器,通过切换标签页显示不同内容,节省界面空间。 | 多页面内容切换(如设置界面) |
QStackedWidget | 堆叠容器,一次显示一个页面,需通过代码或其他控件(如下拉列表)切换页面。 | 动态切换不同视图 |
数据展示控件:
控件类名 | 功能描述 | 常用场景 |
---|
QLabel | 文本或图像标签,用于显示静态内容(文本、HTML、图片等)。 | 显示说明文字、标题、图片 |
QListWidget | 列表控件,显示一系列条目(QListWidgetItem ),支持单选 / 多选。 | 展示简单列表(如文件列表) |
QTableWidget | 表格控件,通过行和列展示数据,支持单元格编辑、排序等。 | 展示二维数据(如成绩表) |
QTreeWidget | 树形控件,展示层级结构数据(如文件系统目录),每个节点可包含子节点。 | 展示分类数据(如导航菜单) |
QProgressBar | 进度条,显示任务完成进度(0%~100%),支持不确定模式(setRange(0,0) )。 | 文件下载、任务进度显示 |
对话框控件:
控件类名 | 功能描述 | 常用场景 |
---|
QMessageBox | 消息对话框,支持信息、警告、错误、询问等类型(information /warning /question )。 | 操作结果提示、确认删除等 |
QFileDialog | 文件对话框,用于选择文件(getOpenFileName )、保存文件(getSaveFileName )或目录(getExistingDirectory )。 | 打开 / 保存文件、选择目录 |
QInputDialog | 输入对话框,用于获取用户输入的文本、数字、选项等。 | 简单参数输入(如重命名) |
QColorDialog | 颜色选择对话框,用于选择颜色。 | 设置文本 / 背景颜色 |
QFontDialog | 字体选择对话框,用于选择字体、大小、样式等。 | 文本格式设置 |
菜单栏控件:
控件类名 | 功能描述 | 常用场景 |
---|
QMainWindow | 主窗口控件,自带菜单栏(menuBar() )、工具栏(addToolBar() )和状态栏(statusBar() )。 | 应用程序主窗口 |
QMenuBar | 菜单栏,包含多个 QMenu (菜单),每个菜单可添加 QAction (菜单项)。 | 应用程序顶部的功能菜单 |
QToolBar | 工具栏,包含图标按钮(QAction ),提供常用功能的快速访问。 | 主窗口顶部 / 侧边的快捷工具 |
QStatusBar | 状态栏,位于窗口底部,用于显示临时信息(如操作提示)或永久信息(如页码)。 | 显示状态信息 |
视图控件:
控件类名 | 功Q |
---|
QListView | 单列列表视图,用于展示序列数据,支持文本、图标等形式,可配合模型实现数据动态管理 |
QTableView | 表格视图,以行列结构展示数据,支持单元格编辑、排序和筛选,适合呈现结构化信息 |
QTreeView | 树形视图,展示层级化数据,支持节点折叠 / 展开,可包含多列信息,用于表现父子关系 |
QColumnView | 列视图,将树形数据拆分为多列展示,每列对应一个层级,便于多级分类导航 |
QGraphicsView | 图形视图,基于 QGraphicsScene 展示 2D 图形元素,支持缩放、旋转和图层管理,适合复杂绘图场景 |
QWebEngineView | 网页视图,嵌入并显示网页内容,支持 HTML5、CSS 和 JavaScript,用于集成网页功能 |
QChartView | 图表视图,用于数据可视化,支持折线图、柱状图、饼图等多种图表类型,展示数据趋势 |
QCalendarWidget | 日历视图,提供日历展示和日期选择功能,支持月份 / 年份切换和日期范围设置 |
QListWidget | 简化的列表控件,自带内部数据模型,适合快速实现简单列表展示(非 Model/View 架构) |
QTableWidget | 简化的表格控件,自带内部模型和单元格项(QTableWidgetItem),适合小规模表格展示 |
QTreeWidget | 简化的树形控件,自带内部模型和节点项(QTreeWidgetItem),快速实现树形结构展示 |
3. QtGui - 图形与用户界面基础
QtGui 模块提供了图形相关的功能,支持窗口外观、字体、颜色、绘图等,是 QtWidgets 的底层依赖。主要类如下:
基础图形元素
常用类 | 功能说明 |
---|
QColor | 颜色管理(支持 RGB、HSV 等模型,含透明度) |
QPoint / QPointF | 二维坐标点(整数 / 浮点数) |
QSize / QSizeF | 尺寸(宽高,整数 / 浮点数) |
QRect / QRectF | 矩形区域(位置和尺寸) |
窗口外观控制
QIcon | 图标管理(支持多种分辨率,用于按钮、菜单等) |
QPalette | 调色板(统一管理控件的前景色、背景色、文本色等) |
QFont | 字体属性(家族、大小、粗体 / 斜体 / 下划线等) |
QFontMetrics | 字体度量(计算文本宽度、高度、行距等) |
绘图系统
QPainter | 绘图核心工具(在控件、图像上绘制图形、文本、路径等) |
QPen | 画笔(控制线条颜色、宽度、样式、端点 / 连接方式) |
QBrush | 画刷(控制填充区域的颜色、纹理、渐变、图案) |
QPainterPath | 绘图路径(组合多个图形元素,支持复杂形状绘制) |
QGradient | 渐变(线性、径向、角度渐变,用于填充) |
图像处理
QPixmap | 位图(优化屏幕显示,适合快速绘制,依赖硬件加速) |
QImage | 像素级图像处理(支持读写像素、格式转换,适合图像编辑) |
QPicture | 绘图记录器(记录绘图指令,可重放绘制) |
QBitmap | 单色位图(继承自 QPixmap,适合做掩码) |
事件处理
QEvent | 所有事件的基类(定义事件类型) |
QMouseEvent | 鼠标事件(点击、移动、滚轮、按下 / 释放) |
QKeyEvent | 键盘事件(按键按下 / 释放、快捷键) |
QWheelEvent | 鼠标滚轮事件(滚动方向和距离) |
QPaintEvent | 绘图事件(触发控件重绘) |
QFocusEvent | 焦点事件(控件获得 / 失去焦点) |
文本处理
QTextLayout | 文本布局(控制文本换行、对齐、字体混合等) |
QTextOption | 文本显示选项(对齐方式、换行模式等) |
QFontDatabase | 字体数据库(查询系统中可用的字体) |
拖放与剪贴板
QMimeData | MIME 数据容器(用于拖放和剪贴板操作,支持文本、图像、文件路径等) |
QClipboard | 系统剪贴板(读写剪贴板内容) |
其他辅助功能
QCursor | 鼠标光标(设置光标形状、隐藏 / 显示光标) |
QRegion | 区域(用于不规则窗口或控件裁剪) |
QTransform | 坐标变换(旋转、缩放、平移图形) |
4. QtQuick 与 QtQml - 现代声明式 UI
QtQuick 是基于 QML(Qt 声明式语言)的模块,用于开发动态、流畅的现代 UI,适合移动应用或需要复杂动画的场景。QtQml 提供了 Python 与 QML 交互的接口。
主要功能:
- QML 语法:声明式定义 UI 组件,支持动画、状态切换、响应式布局。
- Python 与 QML 交互:通过
QQuickView
加载 QML 文件,或在 QML 中调用 Python 函数。
5. QtSql - 数据库操作
QtSql 模块提供了统一的数据库接口,支持 SQLite、MySQL、PostgreSQL 等多种数据库。
主要功能:
- 数据库连接:
QSqlDatabase
管理连接,支持不同数据库驱动。 - 数据查询:
QSqlQuery
执行 SQL 语句,获取结果。 - 模型视图:
QSqlTableModel
(表格模型)、QSqlQueryModel
(查询模型),可直接绑定到 UI 组件(如 QTableView
)。
6. QtNetwork - 网络编程
QtNetwork 模块提供了跨平台的网络通信功能,支持 TCP/UDP、HTTP、SSL 等协议。
主要功能:
- TCP 通信:
QTcpSocket
(客户端)、QTcpServer
(服务器)。 - UDP 通信:
QUdpSocket
发送 / 接收 datagram。 - HTTP 客户端:
QNetworkAccessManager
发送 GET/POST 请求,支持异步操作。