当前位置: 首页 > news >正文

Pyside6 核心模块随笔

PPython模块开发,主要用于前三个板块,会详细讲解

C++ 模块开发,主要用于后三个板块,略过

1. QtCore - 核心功能模块

QtCore 是 PySide6 的基础模块,提供了所有 Qt 应用程序的核心功能,不依赖 GUI 组件,可用于控制台程序。

主要功能

  • 信号与槽(SignalSlot):Qt 事件处理的核心机制,用于对象间通信。
    • 自定义信号可以传递多种类型参数,也可以混合传参(用,隔开)
  • 事件循环(QEventLoop):应用程序的主循环,处理用户输入和系统事件。
  • 定时器(QTimer):用于定时执行任务。
  • 数据类型与容器:如 QListQDictQString 等(兼容 Python 原生类型)。
  • 文件与目录操作(QFileQDir)、日期时间(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字体数据库(查询系统中可用的字体)

拖放与剪贴板

QMimeDataMIME 数据容器(用于拖放和剪贴板操作,支持文本、图像、文件路径等)
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 请求,支持异步操作。
http://www.dtcms.com/a/329971.html

相关文章:

  • VS2022+QT5.15.2+OCCT7.9.1的开发环境搭建流程
  • Pytest+selenium UI自动化测试实战实例(超详细)
  • 【css】让浏览器支持小于12px的文字
  • 各种排序算法(二)
  • OpenBMC中的BMCWeb:架构、原理与应用全解析
  • 焊接工业机器人节气装置
  • Apple 的 GPU 加速框架
  • JavaWeb(05)
  • 汽车免拆诊断案例 | 2017 款丰田皇冠车行驶中加速时车身偶尔抖动
  • 【ARM】keil提示UVISION: Error: Encountered an improper argument
  • PCBA:电子产品制造的核心环节
  • Video_AVI_Packet(1)
  • Linux服务器启动应用缓慢的解决方案
  • 车载网关助力无人配送车联网解决方案
  • Linux系统之ELF文件
  • 云电竞游戏盒子技术分析
  • 51单片机-51单片机介绍
  • Origin绘制直方图+轴须图|科研论文图表教程(附数据格式模板)
  • USB基础 -- USB相关协议字段解析
  • 三种DuckDB电子表格插件的union all查询性能对比
  • AI视频监控:重构安防行业智能化新生态
  • 教育元宇宙:一场重构教育生态的数字革命
  • Redis中灵活结合SET和SETEX的方法及多语言工具库实现
  • 松下继电器
  • CMSIS(cortex 微控制器软件接口标准)是什么?
  • 除了响应式数据还有哪些类型数据
  • Python图像处理基础(十三)
  • Excel怎么筛选重复项?【图文详解】查找/删除重复项?查找重复项公式?如何去重?
  • 网络安全和基础设施安全局 (CISA) 表示微分段不再是可选的
  • 在 uniapp 里使用 unocss,vue3 + vite 项目