一、PySide6 的基础知识
PySide6 是 Qt 框架的 Python 绑定,用于创建跨平台的 GUI 应用程序。以下是 PySide6 的基础知识,帮助你快速入门。
1. PySide6 简介
- PySide6 是 Qt 6 的官方 Python 绑定。
- 它提供了创建桌面应用程序的工具,支持 Windows、macOS 和 Linux。
- PySide6 的核心模块包括
QtCore
、QtGui
、QtWidgets
等。
2. 安装 PySide6
通过 pip 安装 PySide6:
pip install PySide6
3. 基本结构
一个 PySide6 应用程序的基本结构包括:
- 创建应用程序对象 (
QApplication
)。 - 创建窗口和控件。
- 显示窗口。
- 进入主事件循环。
示例:最简单的 PySide6 程序
from PySide6.QtWidgets import QApplication, QWidget
app = QApplication([]) # 创建应用程序对象
window = QWidget() # 创建窗口
window.show() # 显示窗口
app.exec() # 进入主事件循环
4. 常用模块
- QtWidgets:提供 GUI 控件(如按钮、标签、窗口等)。
- QtCore:提供核心功能(如信号与槽、事件循环等)。
- QtGui:提供图形和图像功能(如字体、颜色、绘图等)。
5. 创建窗口
使用 QWidget
或 QMainWindow
创建窗口。
示例:使用 QWidget
from PySide6.QtWidgets import QApplication, QWidget
app = QApplication([])
window = QWidget()
window.setWindowTitle("我的窗口")
window.resize(400, 300)
window.show()
app.exec()
示例:使用 QMainWindow
from PySide6.QtWidgets import QApplication, QMainWindow
app = QApplication([])
window = QMainWindow()
window.setWindowTitle("主窗口")
window.resize(600, 400)
window.show()
app.exec()
6. 常用控件
- QPushButton:按钮。
- QLabel:标签。
- QLineEdit:单行输入框。
- QTextEdit:多行文本框。
- QComboBox:下拉框。
- QCheckBox:复选框。
- QRadioButton:单选按钮。
示例:使用控件
from PySide6.QtWidgets import QApplication, QWidget, QPushButton, QLabel, QVBoxLayout
app = QApplication([])
window = QWidget()
layout = QVBoxLayout()
label = QLabel("你好,PySide6!")
button = QPushButton("点击我")
layout.addWidget(label)
layout.addWidget(button)
window.setLayout(layout)
window.show()
app.exec()
7. 布局管理
布局用于管理控件的位置和大小。常用布局有:
- QVBoxLayout:垂直布局。
- QHBoxLayout:水平布局。
- QGridLayout:网格布局。
示例:使用布局
from PySide6.QtWidgets import QApplication, QWidget, QPushButton, QVBoxLayout
app = QApplication([])
window = QWidget()
layout = QVBoxLayout()
button1 = QPushButton("按钮 1")
button2 = QPushButton("按钮 2")
layout.addWidget(button1)
layout.addWidget(button2)
window.setLayout(layout)
window.show()
app.exec()
8. 信号与槽
信号与槽是 PySide6 中用于处理事件的核心机制。
- 信号:事件发生时发出的信号。
- 槽:响应信号的函数。
示例:按钮点击事件
from PySide6.QtWidgets import QApplication, QWidget, QPushButton
def on_button_clicked():
print("按钮被点击了!")
app = QApplication([])
window = QWidget()
button = QPushButton("点击我")
button.clicked.connect(on_button_clicked) # 连接信号与槽
window.setLayout(QVBoxLayout())
window.layout().addWidget(button)
window.show()
app.exec()
9. 样式设置
使用 QSS(Qt Style Sheets)为控件设置样式。
示例:设置按钮样式
from PySide6.QtWidgets import QApplication, QWidget, QPushButton
app = QApplication([])
window = QWidget()
button = QPushButton("点击我")
button.setStyleSheet("""
QPushButton {
background-color: #4CAF50;
color: white;
border-radius: 5px;
padding: 10px;
}
QPushButton:hover {
background-color: #45a049;
}
""")
window.setLayout(QVBoxLayout())
window.layout().addWidget(button)
window.show()
app.exec()
10. 事件处理
通过重写事件处理函数来响应特定事件。
示例:重写鼠标点击事件