文章目录
-
- [1 概述](#1 概述)
- [2 PyQt6和PySide6区别](#2 PyQt6和PySide6区别)
- [3 环境配置](#3 环境配置)
- [4 配置PySide6](#4 配置PySide6)
- [5 配置PyQt6](#5 配置PyQt6)
- [6 配置外部工具](#6 配置外部工具)
- [7 添加模板](#7 添加模板)
- [8 使用pyside6-project构建工程](#8 使用pyside6-project构建工程)
- [9 常见错误](#9 常见错误)
- [10 相关地址](#10 相关地址)
更多精彩内容 |
---|
👉内容导航 👈 |
👉Qt开发 👈 |
👉python开发 👈 |
1 概述
通常说的PyQt其实是分为PyQt和PySide两类。
PyQt6 和 PySide6 都是用于创建跨平台图形用户界面(GUI)应用程序的 Python 绑定库,它们基于 Qt 库。两者的主要区别在于其授权模式、开发和维护团队的不同和部分语法不同。
环境说明
环境 | 版本 |
---|---|
python | V3.13.2 |
系统 | windows10 |
pycharm | pycharm-community-2024.3.5.exe |
PySide6 | PySide6.9 |
tomlkit | 0.13.2 |
2 PyQt6和PySide6区别
名称 | PyQt6 | PySide6 |
---|---|---|
开发方 | Riverbank Computing 维护 | Qt 官方维护 (The Qt Company) |
许可证 | GPLv3 或商业许可 | LGPLv3 |
API 兼容性 | 与 Qt6 完全绑定,主动跟进新特性 | 严格遵循 Qt6 官方 API,更新较稳定 |
模块导入方式 | from PyQt6 import QtCore |
from PySide6 import QtCore |
信号与槽语法 | 使用 pyqtSignal / pyqtSlot |
使用 Signal / Slot |
授权模式
- PyQt6: 使用的是 GPL(GNU General Public License)和商业许可。这意味着如果你要开发一个开源项目并且项目本身也使用 GPL 许可,那么使用 PyQt6 是没有问题的。但是,如果你开发的是一个闭源的商业项目,那么你需要购买商业许可。
- PySide6: 采用的是 LGPLv3/GPLv3(GNU Lesser General Public License)和商业许可。LGPL 对于链接到库的软件,而不是库本身,提供了更宽松的授权条件。也就是说,即使你的项目是闭源的,只要不是 Qt 库本身,你也可以在没有购买商业许可的情况下使用 LGPL。
开发和维护团队
- PyQt6: 主要由 Riverbank Computing 公司负责开发和维护。
- PySide6: 由 The Qt Company 负责开发和维护,这家公司是 Qt 库的官方所有者。
PyQt6
优点:
- 拥有成熟的社区支持和丰富的文档。
- 提供了对 Qt 库功能的完整覆盖。
缺点:
- 对于商业用途,如果没有购买商业许可,可能会受到 GPL 许可的限制。
- 在安装和配置上可能会遇到一些复杂性,特别是对于新手来说。
PySide6
优点:
- 对于商业用途,LGPL 提供了更大的灵活性。
- 由于是官方维护,可能会获得更快的更新和更好的性能表现。
缺点:
- 相较于 PyQt6,社区支持相对较少,可能会遇到一些问题时没有足够的资源来解决。
- 文档的丰富程度和易用性可能会稍逊一筹。
3 环境配置
-
下载安装python;
-
下载安装pycharm;
-
下载安装Qt,可以在Qtcreator中开发pyqt,也可以使用Qt安装包中自带的帮助文档,但是qtcreator对python语法支持没有pycharm好(可选)。
-
修改pip源,否则默认源安装会非常慢,
-
使用阿里云pip镜像;
-
在windows中的
C:\Users\用户名
路径下创建一个.pip
文件夹,然后再在.pip文件夹中创建一个pip.conf文件,将下列内容添加到pip.conf文件中;shell[global] index-url = http://mirrors.aliyun.com/pypi/simple/ [install] trusted-host=mirrors.aliyun.com
4 配置PySide6
安装方法1:使用命令行在线安装
shell
pip install pyside6 # 默认安装最新版本
pip install pyside6==6.4.1 # 安装指定版本
pip install --index-url=https://download.qt.io/snapshots/ci/pyside/6.4/latest pyside6 --trusted-host download.qt.io 从指定服务器安装
安装方法2: 使用pycharm安装
-
打开pycharm,创建一个工程;
-
选择python软件包,搜索PySide6,如下所示,点击【安装】;
安装方法3: 下载whl安装包,离线安装,对于内网环境或者网络不好pip安装失败的环境可用
-
选择需要的版本,这里选择的是最新版本;
-
然后搜索自己的系统平台,这里搜索
win_amd64
,可以看到有6个whl包; -
分别下载6个whl到本地,如下图所示;
-
创建一个
requirements.txt
文件,将所有whl包名称添加到requirements.txt文件中; -
使用pycharm创建一个工程。
-
点击终端,然后使用
pip install xxx.whl
命令进行安装; -
或者进入whl包所在路径,使用
pip install -r requirements.txt
命令进行安装;
5 配置PyQt6
- pypi下载地址;
- 与PySide6类型,可以使用
pip install PyQt6
,但是PyQt6默认不包含开发工具,需要单独安装,详细看https://pypi.org/project/pyqt6-tools/;
6 配置外部工具
-
打开【设置】【工具】【外部工具】,点击+;
-
添加
designer
,设置程序路径 和工作目录如下所示; -
添加
pyside6-uic
; -
添加
pyside6-project
,用于构建pyqt工程;
7 添加模板
这一步不是必须,可以通过designer创建UI文件。
-
在pycharm中创建Qt ui文件可通过设置文件模板的方式实现;
-
打开【设置】【编辑器】【文件和代码模板】;
-
选择【文件】,点击
+
,设置扩展名为ui
,添加ui模板如下所示;xml<?xml version="1.0" encoding="UTF-8"?> <ui version="4.0"> <class>Widget</class> <widget class="QWidget" name="Widget"> <property name="geometry"> <rect> <x>0</x> <y>0</y> <width>400</width> <height>300</height> </rect> </property> <property name="windowTitle"> <string>Widget</string> </property> </widget> <resources/> <connections/> </ui>
8 使用pyside6-project构建工程
-
创建一个
名称.pyproject
文件; -
按下列格式添加需要构建的文件名称,会批量将ui文件生成ui_name.py文件;
json{ "files": [ "main.py", "widget.ui", "widget1.ui" ] }
-
注意:pyside6-project需要
tomlkit
库支持。
9 常见错误
-
缺失tomlkit
shellTraceback (most recent call last): File "E:\Code\py\untitled1\.qtcreator\Python_3_13_2venv\Lib\site-packages\PySide6\scripts\project.py", line 10, in <module> from project_lib import (QmlProjectData, check_qml_decorators, is_python_file, migrate_pyproject, ... <3 lines>... ClOptions, DesignStudioProject) File "E:\Code\py\untitled1\.qtcreator\Python_3_13_2venv\Lib\site-packages\PySide6\scripts\project_lib\__init__.py", line 46, in <module> from .utils import (run_command, requires_rebuild, remove_path, package_dir, qtpaths, qt_metatype_json_dir, resolve_valid_project_file) File "E:\Code\py\untitled1\.qtcreator\Python_3_13_2venv\Lib\site-packages\PySide6\scripts\project_lib\utils.py", line 12, in <module> from .pyproject_toml import parse_pyproject_toml File "E:\Code\py\untitled1\.qtcreator\Python_3_13_2venv\Lib\site-packages\PySide6\scripts\project_lib\pyproject_toml.py", line 8, in <module> import tomlkit ModuleNotFoundError: No module named 'tomlkit' 15:15:57: 进程"E:\Code\py\untitled1\.qtcreator\Python_3_13_2venv\Scripts\pyside6-project.exe"退出,退出代码 1 。 15:15:57: Error while building/deploying project untitled1 (kit: Python 3.13.2) 15:15:57: When executing step "Run PySide6 project tool"
- 解决办法:
- 下载tomlkit包进行安装;
- 使用
pip install tomlkit
命令进行安装。
- 解决办法: