技术选型说明Python 下 Qt 绑定库两大主流PyQt功能全商用需要授权PySideQt for PythonQt 官方出品LGPL 开源免费推荐首选当前主流版本PySide6 / PyQt6适配 Qt6。一、环境搭建pip 一键安装1. 安装 PySide6推荐bash运行pip install pyside62. 安装 PyQt6bash运行pip install pyqt63. 配套工具Qt Designer 界面设计器bash运行# PySide6 pyside6-designer # PyQt6 pyqt6-tools designer二、示例 1Python Qt 最简窗口PySide6python运行from PySide6.QtWidgets import QApplication, QMainWindow, QPushButton import sys if __name__ __main__: app QApplication(sys.argv) win QMainWindow() win.resize(400, 200) win.setWindowTitle(PySide6 窗口) btn QPushButton(点击按钮, win) btn.move(150, 80) def on_click(): print(按钮被点击) btn.clicked.connect(on_click) win.show() sys.exit(app.exec())三、示例 2加载 Qt Designer 绘制的 UI 文件使用pyside6-designer拖拽控件保存为main.uiPython 直接加载使用python运行from PySide6.QtWidgets import QApplication, QMainWindow from PySide6.QtUiTools import QUiLoader import sys if __name__ __main__: app QApplication(sys.argv) ui QUiLoader().load(main.ui) ui.show() sys.exit(app.exec())也可使用工具将.ui转为.py代码bash运行pyside6-uic main.ui -o ui_main.py四、Python 调用 C核心混合场景两种主流混合方案方案 1C 编译为动态库.dll/.soPython 调用Qt C 编写业务逻辑编译为动态链接库Python 使用ctypes/cffi加载库并调用函数C 动态库代码Windows dllcpp运行extern C __declspec(dllexport) int add(int a, int b) { return a b; }编译生成test.dllPython 调用python运行import ctypes dll ctypes.CDLL(./test.dll) res dll.add(10, 20) print(f调用C结果: {res})方案 2QML 作为中间层Qt 官方推荐架构Python(PySide6) -- QML -- CC 类注册到 QMLPython 加载 QML 界面通过 QML 信号 / 属性和 C 双向通信适合大型界面 复杂底层逻辑的项目。五、C 调用 Python 脚本Qt C 中执行 Python 代码 / 脚本使用Python C API或进程调用1.简单场景QProcess拉起 python 解释器执行脚本cpp运行QProcess proc; proc.start(python, QStringList() test.py); proc.waitForFinished(); QString out proc.readAllStandardOutput();2.深度嵌入使用 Python 原生 API将 Python 解释器嵌入 Qt 进程。六、适用场景 优缺点适用场景快速原型、工具类软件Python PySide6 开发效率极高界面由 Python 实现底层算法 / 硬件 / 通信由 C 实现数据分析、可视化、运维工具、自动化脚本界面优缺点优点开发快、胶水语言灵活、丰富 Python 第三方库数据分析、AI、爬虫缺点大型桌面软件性能略低于纯 C打包后体积偏大七、项目打包发布Python Qt 程序打包为独立可执行文件使用PyInstallerbash运行pip install pyinstaller # 打包命令 pyinstaller -w -F main.py-w关闭控制台黑窗口-F打包为单个 exe小结纯界面 / 工具优先使用PySide6免费开源混合开发主流模式C 动态库 Python 调用、QML 桥接双向通信Python Qt 适合快速开发、算法结合界面、小型工具C 负责高性能底层逻辑。全系列 Qt 技术博客完结至此整套 Qt 学习路线全部完成基础控件 → QML → 实战项目 → 编译排错 → 性能优化 → 版本迁移 → 嵌入式移植 → 3D/多媒体/网络 → Python混合开发覆盖桌面、嵌入式、网络、音视频、三维、跨语言全场景可作为学习、面试、项目开发完整参考手册。
Qt 与 Python 混合开发|PyQt / PySide 入门、界面调用、互操作
发布时间:2026/6/12 3:19:09
技术选型说明Python 下 Qt 绑定库两大主流PyQt功能全商用需要授权PySideQt for PythonQt 官方出品LGPL 开源免费推荐首选当前主流版本PySide6 / PyQt6适配 Qt6。一、环境搭建pip 一键安装1. 安装 PySide6推荐bash运行pip install pyside62. 安装 PyQt6bash运行pip install pyqt63. 配套工具Qt Designer 界面设计器bash运行# PySide6 pyside6-designer # PyQt6 pyqt6-tools designer二、示例 1Python Qt 最简窗口PySide6python运行from PySide6.QtWidgets import QApplication, QMainWindow, QPushButton import sys if __name__ __main__: app QApplication(sys.argv) win QMainWindow() win.resize(400, 200) win.setWindowTitle(PySide6 窗口) btn QPushButton(点击按钮, win) btn.move(150, 80) def on_click(): print(按钮被点击) btn.clicked.connect(on_click) win.show() sys.exit(app.exec())三、示例 2加载 Qt Designer 绘制的 UI 文件使用pyside6-designer拖拽控件保存为main.uiPython 直接加载使用python运行from PySide6.QtWidgets import QApplication, QMainWindow from PySide6.QtUiTools import QUiLoader import sys if __name__ __main__: app QApplication(sys.argv) ui QUiLoader().load(main.ui) ui.show() sys.exit(app.exec())也可使用工具将.ui转为.py代码bash运行pyside6-uic main.ui -o ui_main.py四、Python 调用 C核心混合场景两种主流混合方案方案 1C 编译为动态库.dll/.soPython 调用Qt C 编写业务逻辑编译为动态链接库Python 使用ctypes/cffi加载库并调用函数C 动态库代码Windows dllcpp运行extern C __declspec(dllexport) int add(int a, int b) { return a b; }编译生成test.dllPython 调用python运行import ctypes dll ctypes.CDLL(./test.dll) res dll.add(10, 20) print(f调用C结果: {res})方案 2QML 作为中间层Qt 官方推荐架构Python(PySide6) -- QML -- CC 类注册到 QMLPython 加载 QML 界面通过 QML 信号 / 属性和 C 双向通信适合大型界面 复杂底层逻辑的项目。五、C 调用 Python 脚本Qt C 中执行 Python 代码 / 脚本使用Python C API或进程调用1.简单场景QProcess拉起 python 解释器执行脚本cpp运行QProcess proc; proc.start(python, QStringList() test.py); proc.waitForFinished(); QString out proc.readAllStandardOutput();2.深度嵌入使用 Python 原生 API将 Python 解释器嵌入 Qt 进程。六、适用场景 优缺点适用场景快速原型、工具类软件Python PySide6 开发效率极高界面由 Python 实现底层算法 / 硬件 / 通信由 C 实现数据分析、可视化、运维工具、自动化脚本界面优缺点优点开发快、胶水语言灵活、丰富 Python 第三方库数据分析、AI、爬虫缺点大型桌面软件性能略低于纯 C打包后体积偏大七、项目打包发布Python Qt 程序打包为独立可执行文件使用PyInstallerbash运行pip install pyinstaller # 打包命令 pyinstaller -w -F main.py-w关闭控制台黑窗口-F打包为单个 exe小结纯界面 / 工具优先使用PySide6免费开源混合开发主流模式C 动态库 Python 调用、QML 桥接双向通信Python Qt 适合快速开发、算法结合界面、小型工具C 负责高性能底层逻辑。全系列 Qt 技术博客完结至此整套 Qt 学习路线全部完成基础控件 → QML → 实战项目 → 编译排错 → 性能优化 → 版本迁移 → 嵌入式移植 → 3D/多媒体/网络 → Python混合开发覆盖桌面、嵌入式、网络、音视频、三维、跨语言全场景可作为学习、面试、项目开发完整参考手册。