PyQt/PySide Python桌面应用开发教程

面向初学者的在线Python训练器

轻松学习Python,无需理论负担。在浏览器中直接解决带自动检查的实践任务,无需安装任何东西。

开始课程

引言

PyQt和PySide是基于Qt框架的Python图形界面开发利器,能够轻松构建跨平台的桌面应用程序。它们提供了Qt生态的完整功能:丰富的控件库、事件处理系统、样式动画、数据库操作,甚至支持QML来打造现代化的用户界面。

两者的核心区别在于许可证:PyQt采用GPL或商业授权,而PySide(Qt官方维护版本)使用更宽松的LGPL协议,更适合商业项目开发。

在本教程中,我们将从环境搭建开始,逐步深入到数据库集成、界面美化和应用打包,带你全面掌握这两大Python GUI库的使用技巧。

安装与配置

安装PyQt5和PyQt6

# PyQt5(稳定版)
pip install pyqt5 pyqt5-tools

# PyQt6(最新版)
pip install pyqt6 pyqt6-tools

安装PySide2和PySide6

# PySide2(对应Qt 5)
pip install pyside2

# PySide6(推荐版本)
pip install pyside6

验证安装

# PyQt5验证
from PyQt5.QtWidgets import QApplication
print("PyQt5安装成功")

# PySide6验证
from PySide6.QtWidgets import QApplication
print("PySide6安装成功")

创建第一个应用

带按钮的简单窗口

PyQt5版本

from PyQt5.QtWidgets import QApplication, QPushButton, QVBoxLayout, QWidget
import sys

class MainWindow(QWidget):
    def __init__(self):
        super().__init__()
        self.setWindowTitle('我的第一个PyQt5应用')
        self.setGeometry(100, 100, 300, 200)
        
        layout = QVBoxLayout()
        button = QPushButton('点我')
        button.clicked.connect(self.on_click)
        layout.addWidget(button)
        
        self.setLayout(layout)
    
    def on_click(self):
        print("按钮被点击了!")

app = QApplication(sys.argv)
window = MainWindow()
window.show()
sys.exit(app.exec_())

PySide6版本

from PySide6.QtWidgets import QApplication, QPushButton, QVBoxLayout, QWidget
import sys

class MainWindow(QWidget):
    def __init__(self):
        super().__init__()
        self.setWindowTitle('我的第一个PySide6应用')
        self.setGeometry(100, 100, 300, 200)
        
        layout = QVBoxLayout()
        button = QPushButton('点我')
        button.clicked.connect(self.on_click)
        layout.addWidget(button)
        
        self.setLayout(layout)
    
    def on_click(self):
        print("按钮被点击了!")

app = QApplication(sys.argv)
window = MainWindow()
window.show()
sys.exit(app.exec())

Qt应用架构

核心组件

QApplication — 每个Qt应用的核心对象,负责管理事件循环、处理系统事件并协调所有控件的运行。

QWidget — 所有界面元素的基类,可以作为容器容纳其他控件。

QMainWindow — 专为主窗口设计的控件,支持菜单栏、工具栏、状态栏和中央控件区域。

QDialog — 对话框基类,支持模态和非模态两种显示模式。

应用生命周期

  1. 创建QApplication实例
  2. 创建并配置界面控件
  3. 显示主窗口
  4. 通过exec()或exec_()启动事件循环
  5. 应用退出

推荐