本文按「核心模块分类」的方式,列出开发中最常用的组件(类)和函数,并说明其核心作用,覆盖界面、图表、事件处理等高频场景,方便快速查阅和使用。

一、核心模块与组件总览

PySide6的功能按模块划分,以下是开发中最常用的模块及核心组件,每个组件标注核心作用:

模块 核心组件/类 核心作用
QtWidgets QApplication 应用程序入口,管理全局资源、事件循环,必须实例化且唯一
QtWidgets QMainWindow 主窗口框架,包含菜单栏、工具栏、状态栏、中央部件,适合做应用主界面
QtWidgets QWidget 所有可视化组件的基类,可独立作为窗口/容器,用于自定义控件
QtWidgets QDialog 对话框组件,用于弹窗(如提示、选择、输入),支持模态/非模态
QtWidgets QLayout(QVBoxLayout/QHBoxLayout) 布局管理器,自动排列子控件,避免固定坐标,适配不同窗口大小
QtWidgets QPushButton/QLabel/QLineEdit 基础控件:按钮/文本标签/单行输入框,构建交互界面的核心元素
QtCharts QChart 图表容器,管理图表系列、坐标轴、图例、标题等所有图表元素
QtCharts QChartView 图表显示控件,将QChart渲染到界面,支持交互(缩放、平移)
QtCharts QAbstractSeries(系列子类) 图表数据系列:QLineSeries(折线)/QBarSeries(条形)/QPieSeries(饼图)等
QtCharts QAbstractAxis(坐标轴子类) 坐标轴:QValueAxis(数值轴)/QCategoryAxis(分类轴)/QPolarAxis(极轴)
QtCore QObject 所有Qt对象的基类,支持信号与槽、属性、父子对象管理
QtCore Qt 全局枚举常量:对齐方式(Qt.AlignCenter)、鼠标按键、颜色常量等
QtCore QTimer 定时器,用于定时执行任务(如刷新数据、倒计时)
QtCore Signal/Slot 信号与槽机制,实现组件间通信(如按钮点击触发函数)
QtGui QColor/QBrush/QPen 颜色/画刷/画笔,用于设置控件/图表的颜色、填充、线条样式
QtGui QFont 字体设置,控制文本的字体、大小、加粗/斜体等
QtGui QIcon 图标类,为按钮、窗口设置图标

二、高频常用函数(按场景分类)

1. 界面基础操作(QtWidgets)
函数/方法 所属组件 核心作用
__init__() 所有组件 构造函数,初始化组件,设置父对象、初始属性(如窗口标题、大小)
setWindowTitle("标题") QWidget/QMainWindow 设置窗口标题
setGeometry(x, y, w, h) QWidget 设置窗口位置(x,y)和大小(w,h),等价于resize()+move()
show() QWidget 显示组件/窗口,非模态;exec()(QDialog)为模态显示(阻塞主线程)
setLayout(QLayout) QWidget 为控件设置布局管理器,管理子控件排列
addWidget(QWidget) QLayout 向布局中添加子控件
connect(信号, 槽函数) QObject 绑定信号与槽(如btn.clicked.connect(self.on_click)),实现交互
setCentralWidget(QWidget) QMainWindow 设置主窗口的中央部件(核心显示区域)
2. 图表操作(QtCharts)
函数/方法 所属组件 核心作用
addSeries(QAbstractSeries) QChart 向图表添加数据系列(折线/条形/饼图等)
addAxis(QAbstractAxis, 对齐方式) QChart 添加坐标轴,并指定位置(Qt.AlignBottom/X轴、Qt.AlignLeft/Y轴)
attachAxis(QAbstractAxis) QAbstractSeries 将数据系列绑定到坐标轴,使系列沿该轴显示
setTitle("图表标题") QChart 设置图表标题
setBackgroundBrush(QBrush) QChart 设置图表整体背景色
setPen(QPen)/setBrush(QBrush) 系列/坐标轴 线条类(折线/轴线)设Pen(颜色/线宽),填充类(条形/饼图)设Brush(填充色)
legend().setVisible(True) QChart 显示/隐藏图例
3. 颜色/样式设置(QtGui)
函数/方法 所属组件 核心作用
QColor(r, g, b)/QColor("#Hex") QColor 创建颜色对象,支持RGB/十六进制/预定义常量(Qt.red)
QPen(QColor, 线宽, 样式) QPen 创建画笔,设置线条颜色、宽度、样式(实线/虚线Qt.DashLine)
QBrush(QColor) QBrush 创建画刷,设置填充颜色/渐变/纹理
setStyleSheet("CSS样式") QWidget 用CSS样式设置控件外观(如btn.setStyleSheet(“background-color: red;”))
setFont(QFont("字体", 大小)) 文本类控件 设置控件文本的字体和大小
4. 信号与槽(QtCore)
函数/方法 所属组件 核心作用
Signal(参数类型) QObject 定义自定义信号(如my_signal = Signal(str))
Slot(返回类型) QObject 装饰器定义槽函数(如@Slot() def on_click(): …)
emit(参数) 信号对象 触发信号(如self.my_signal.emit(“hello”)),关联的槽函数自动执行
QTimer.singleShot(延时, 槽函数) QTimer 一次性定时器:延时x毫秒后执行槽函数(单位:ms)
start(间隔)/stop() QTimer 循环定时器:每隔x毫秒执行一次槽函数,stop()停止

三、常用场景示例(函数组合使用)

示例1:创建主窗口+按钮+点击事件
import sys
from PySide6.QtWidgets import QApplication, QMainWindow, QPushButton
from PySide6.QtCore import Slot

class MyWindow(QMainWindow):
    def __init__(self):
        super().__init__()
        self.setWindowTitle("基础窗口示例")
        self.setGeometry(100, 100, 400, 300)
        
        # 创建按钮并设置属性
        btn = QPushButton("点击我", self)
        btn.setGeometry(150, 100, 100, 50)
        # 绑定信号与槽
        btn.clicked.connect(self.on_btn_click)
    
    @Slot()  # 槽函数装饰器(可选,增强可读性)
    def on_btn_click(self):
        print("按钮被点击了!")

if __name__ == "__main__":
    app = QApplication(sys.argv)  # 必须实例化QApplication
    window = MyWindow()
    window.show()  # 显示窗口
    sys.exit(app.exec())  # 启动事件循环
示例2:创建折线图+设置样式
from PySide6.QtCharts import QChart, QChartView, QLineSeries
from PySide6.QtGui import QPen, QColor
from PySide6.QtCore import Qt

# 创建数据系列
series = QLineSeries()
series.append(0, 10)
series.append(1, 20)
series.setPen(QPen(QColor(255, 0, 0), 2))  # 设置折线颜色+线宽

# 创建图表并添加系列
chart = QChart()
chart.addSeries(series)
chart.setTitle("折线图示例")
chart.setBackgroundBrush(QColor(245, 245, 245))  # 背景色

# 创建坐标轴并绑定
axis_x = QValueAxis()
axis_x.setRange(0, 1)
chart.addAxis(axis_x, Qt.AlignBottom)
series.attachAxis(axis_x)

# 显示图表
chart_view = QChartView(chart)
chart_view.show()

总结

  1. 核心组件:界面基础用QMainWindow/QWidget/QDialog,布局用QLayout,图表用QChart/QChartView,交互用信号与槽;
  2. 高频函数:界面操作(setWindowTitle/show/setLayout)、图表配置(addSeries/addAxis/setPen/setBrush)、信号槽(connect/emit);
  3. 关键逻辑:PySide6所有可视化组件继承QWidget,所有可交互对象继承QObject(支持信号槽),图表核心是「系列+坐标轴+容器」的组合。

ps:AI生成,供参考

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐