跳到主要内容

PyQt 入门与进阶教程

🧩 为什么学习 PyQt?

tkinter 是标准库自带的 GUI 工具,但功能和界面风格较为基础。而 PyQt 是一个基于 Qt 库的 Python 图形界面框架,具有:

  • 界面美观、跨平台
  • 功能强大(支持多窗口、绘图、信号槽机制)
  • 支持 Qt Designer 可视化设计界面

适合用来开发专业的桌面应用程序。


✅ 安装 PyQt5

pip install PyQt5

第一个 PyQt 应用程序

导入 sys
PyQt5.Qt控件 导入 Q应用程序, Q标签, Q小部件

app = Q应用程序(sys.参数)
窗口 = Q小部件()
窗口.设置窗口标题("你好 PyQt")
窗口.调整大小(300, 200)

标签 = Q标签("欢迎使用 PyQt!", parent=窗口)
标签.移动(100, 80)

窗口.显示()
sys.退出(app.退出_())'

说明:

  • QApplication:应用对象,必须有
  • QWidget:基础窗口部件
  • QLabel:文本标签
  • show():显示窗口
  • sys.exit():程序退出处理

界面控件与布局

常见控件:

控件类名功能
按钮QPushButton点击事件
输入框QLineEdit文本输入
标签QLabel显示文字
文本框QTextEdit多行文本
下拉框QComboBox选择菜单
单选框QRadioButton单选项
复选框QCheckBox多选项

示例:简单表单

PyQt5.Qt控件 导入 Q应用程序, Q小部件, Q标签, Q行编辑, Q按钮, Q垂直布局
导入 sys

窗口(Q小部件):
__初始化__(self):
父类().__初始化__()
self.设置窗口标题("登录界面")
self.调整大小(300, 150)

self.标签1 = Q标签("用户名")
self.输入1 = Q行编辑()

self.标签2 = Q标签("密码")
self.输入2 = Q行编辑()
self.输入2.设置回显模式(Q行编辑.密码)

self.按钮 = Q按钮("登录")
self.按钮.点击.连接(self.登录)

布局 = Q垂直布局()
布局.添加小部件(self.标签1)
布局.添加小部件(self.输入1)
布局.添加小部件(self.标签2)
布局.添加小部件(self.输入2)
布局.添加小部件(self.按钮)

self.设置布局(布局)

登录(self):
用户名 = self.输入1.text()
密码 = self.输入2.text()
打印(f"用户名: {用户名}, 密码: {密码}")

app = Q应用程序(sys.argv)
win = 窗口()
win.显示()
sys.退出(app.退出_())

信号与槽机制(事件处理)

在 PyQt 中,信号(Signal) 是用户触发的事件,槽(Slot) 是用来处理这个事件的函数。

按钮.点击.连接(self.处理函数)

你也可以自定义信号和槽函数,或断开信号:

按钮.点击.断开连接()  # 取消绑定

Qt Designer 可视化设计(推荐)

  1. 安装 Qt Designer:

    • 安装 PyQt5-tools:pip install pyqt5-tools
    • 找到 designer.exe 并运行
  2. 使用 Designer 拖放设计界面,保存为 .ui 文件

  3. 使用 pyuic5 将 UI 转换为 Python 代码:

pyuic5 -o ui_main.py main.ui

文件选择与消息弹窗

PyQt5.Qt控件 导入 Q文本对话框, Q消息框

文件名, _ = Q文本对话框.获取打开问报名(self, "打开文件")
消息框.信息(self, "提示", f"你选择了:{文件名}")

✅ 小结

模块模块用法
Q应用程序QApplication应用初始化
Q小部件QWidget窗口类
Q按钮QPushButton按钮,支持点击事件
Q垂直布局QVBoxLayout布局管理器
信号/槽信号/槽用户操作与逻辑的连接
Q文本对话框QFileDialog文件对话框
Q消息框QMessageBox信息弹窗