pyqt环境配置

文章目录

    • 1 概述
    • 2 PyQt6和PySide6区别
    • 3 环境配置
    • 4 配置PySide6
    • 5 配置PyQt6
    • 6 配置外部工具
    • 7 添加模板
    • 8 使用pyside6-project构建工程
    • 9 常见错误
    • 10 相关地址


更多精彩内容
👉内容导航 👈
👉Qt开发 👈
👉python开发 👈

1 概述

通常说的PyQt其实是分为PyQt和PySide两类。

PyQt6 和 PySide6 都是用于创建跨平台图形用户界面(GUI)应用程序的 Python 绑定库,它们基于 Qt 库。两者的主要区别在于其授权模式、开发和维护团队的不同和部分语法不同。

环境说明

环境版本
pythonV3.13.2
系统windows10
pycharmpycharm-community-2024.3.5.exe
PySide6PySide6.9
tomlkit0.13.2

2 PyQt6和PySide6区别

名称PyQt6PySide6
开发方Riverbank Computing 维护Qt 官方维护 (The Qt Company)
许可证GPLv3 或商业许可LGPLv3
API 兼容性与 Qt6 完全绑定,主动跟进新特性严格遵循 Qt6 官方 API,更新较稳定
模块导入方式from PyQt6 import QtCorefrom 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 环境配置

  1. 下载安装python;

  2. 下载安装pycharm;

  3. 下载安装Qt,可以在Qtcreator中开发pyqt,也可以使用Qt安装包中自带的帮助文档,但是qtcreator对python语法支持没有pycharm好(可选)。

  4. 修改pip源,否则默认源安装会非常慢,

  5. 使用阿里云pip镜像;

  6. 在windows中的C:\Users\用户名路径下创建一个.pip文件夹,然后再在.pip文件夹中创建一个pip.conf文件,将下列内容添加到pip.conf文件中;

    [global]
    index-url = http://mirrors.aliyun.com/pypi/simple/[install]
    trusted-host=mirrors.aliyun.com
    

4 配置PySide6

  • 官方地址

安装方法1:使用命令行在线安装

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安装失败的环境可用

  • 进入pyside下载地址或者pypi下载地址;

  • 选择需要的版本,这里选择的是最新版本;

  • 然后搜索自己的系统平台,这里搜索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 配置外部工具

  1. 打开【设置】【工具】【外部工具】,点击+;

  2. 添加designer,设置程序路径工作目录如下所示;

    在这里插入图片描述

  3. 添加pyside6-uic

    在这里插入图片描述

  4. 添加pyside6-project,用于构建pyqt工程;

    在这里插入图片描述

7 添加模板

这一步不是必须,可以通过designer创建UI文件。

  1. 在pycharm中创建Qt ui文件可通过设置文件模板的方式实现;

  2. 打开【设置】【编辑器】【文件和代码模板】;

  3. 选择【文件】,点击+,设置扩展名为ui,添加ui模板如下所示;

    <?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构建工程

  1. 创建一个名称.pyproject文件;

  2. 按下列格式添加需要构建的文件名称,会批量将ui文件生成ui_name.py文件;

    {"files": ["main.py","widget.ui","widget1.ui"]
    }
    
  3. 注意:pyside6-project需要tomlkit库支持。

9 常见错误

  1. 缺失tomlkit

    Traceback (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"退出,退出代码 115:15:57: Error while building/deploying project untitled1 (kit: Python 3.13.2)
    15:15:57: When executing step "Run PySide6 project tool"
    
    • 解决办法:
      1. 下载tomlkit包进行安装;
      2. 使用pip install tomlkit命令进行安装。

10 相关地址

  • Qt for Python地址
  • pyside6下载地址1
  • pyside6下载地址2
  • PySide6包依赖
  • PyQt6地址
  • PyQt6文档
  • PyQt6下载地址

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/79509.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

金融数据库转型实战读后感

荣幸收到老友太保科技有限公司数智研究院首席专家林春的签名赠书。 这是国内第一本关于OceanBase数据库实际替换过程总结的的实战书。打个比方可以说是从战场上下来分享战斗经验。读后感受颇深。我在这里讲讲我的感受。 第三章中提到的应用改造如何降本。应用改造是国产化替换…

旅游资源网站登录(jsp+ssm+mysql5.x)

旅游资源网站登录(jspssmmysql5.x) 旅游资源网站是一个为旅游爱好者提供全面服务的平台。网站登录界面简洁明了&#xff0c;用户可以选择以管理员或普通用户身份登录。成功登录后&#xff0c;用户可以访问个人中心&#xff0c;进行修改密码和个人信息管理。用户管理模块允许管…

STM32 HAL库之WDG示例代码

独立看门狗&#xff08;IWDG&#xff09; 在规定时间内按按键喂狗并将LED关闭&#xff0c;若产生看门狗复位则LED打开 初始化独立看门狗&#xff0c;在main.c中的 MX_IWDG_Init();&#xff0c;也就是iwdg.c中的初始化代码 void MX_IWDG_Init(void) {/* USER CODE BEGIN IWDG…

【第47节】windows程序的其他反调试手段下篇

目录 一、利用Hardware Breakpoints Detection 二、PatchingDetection - CodeChecksumCalculation 补丁检测&#xff0c;代码检验和 三、block input 封锁键盘、鼠标输入 四、使用EnableWindow 禁用窗口 五、利用ThreadHideFromDebugger 六、使用Disabling Breakpoints 禁…

【笔记ing】AI大模型-03深度学习基础理论

神经网络&#xff1a;A neural network is a network or circuit of neurons,or in a modern sense,an artificial neural network,composed of artificial neurons or nodes.神经网络是神经元的网络或回路&#xff0c;或者在现在意义上来说&#xff0c;是一个由人工神经元或节…

基于Djiango实现中药材数据分析与可视化系统

中药材数据分析与可视化系统 项目截图 登录 注册 首页 药材Top20 药材价格 产地占比 历史价格 新闻资讯 后台管理 一、项目概述 中药材数据分析与可视化系统是一个基于Django框架开发的专业Web应用&#xff0c;致力于对各类中药材数据进行全面、系统的采集、分析和可视化展示…

【AI飞】AutoIT入门七(实战):python操控autoit解决csf视频批量转换(有点难,AI都不会)

背景&#xff1a; 终极目标&#xff1a;通过python调用大模型&#xff0c;获得结果&#xff0c;然后根据返回信息&#xff0c;控制AutoIT操作电脑软件&#xff0c;执行具体工作。让AI更具有执行力。 已完成部分&#xff1a; 关于python调用大模型的&#xff0c;可以参考之前的…

leetcode 188. Best Time to Buy and Sell Stock IV

目录 题目描述 第一步&#xff0c;明确并理解dp数组及下标的含义 第二步&#xff0c;分析明确并理解递推公式 1.求dp[i][j].holding 2.求dp[i][j].sold 第三步&#xff0c;理解dp数组如何初始化 第四步&#xff0c;理解遍历顺序 代码 题目描述 这道题把第123题推广为一…

【笔记】【C++】【基础语法】作用域(scope)、持续时间(duration)和链接(linkage)

【笔记】【C】【基础语法】作用域&#xff08;scope&#xff09;、持续时间&#xff08;duration&#xff09;和链接&#xff08;linkage&#xff09; 最近正在复习学习C&#xff08;查漏补缺ing&#xff09;。记录一下学习所得。希望能将所学都整理成一系列的笔记和博客。优先…

Yarn的安装及环境配置

### Yarn 安装教程及环境配置步骤 #### 1. 检查 Node.js 是否已安装 在安装 Yarn 前&#xff0c;需确认系统中已经安装了 Node.js。可以通过以下命令验证其是否存在并获取版本号&#xff1a; bash node -v 如果未安装&#xff0c;则需要先完成 Node.js 的安装。 --- #### 2…

day2-小白学习JAVA---java第一个程序

java第一个程序 1、新建一个文件&#xff0c;以.java为结尾2、用编辑器打开后写入代码&#xff08;本人写前端&#xff0c;所以用vscode&#xff0c;也可用其他&#xff09;3、编译文件4、运行文件5、HelloWorld代码解释6、文档注释 1、新建一个文件&#xff0c;以.java为结尾 …

docker部署springboot(eureka server)项目

打jar包 使用maven&#xff1a; <build><plugins><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-compiler-plugin</artifactId><configuration><source>17</source><target>17&…

解读《人工智能指数报告 2025》:洞察 AI 发展新态势

美国斯坦福大学 “以人为本人工智能研究院”&#xff08;HAI&#xff09;近日发布的第八版《人工智能指数报告》&#xff08;AI Index Report 2025&#xff09;备受全球瞩目。自 2017 年首次发布以来&#xff0c;该报告一直为政策制定者、研究人员、企业高管和公众提供准确、严…

OpenGauss 数据库介绍

OpenGauss 数据库介绍 OpenGauss 是华为基于 PostgreSQL 开发的企业级开源关系型数据库&#xff0c;现已成为开放原子开源基金会的项目。以下是 OpenGauss 的详细介绍&#xff1a; 一 核心特性 1.1 架构设计亮点 特性说明优势多核并行NUMA感知架构充分利用现代CPU多核性能行…

使用Trae CN分析项目架构

架构分析后的截图 A区是打开的项目、B区是源码区、C区是AI给出当前项目的架构分析结果。 如何用 Trae CN 快速学习 STM32 嵌入式项目架构 在嵌入式开发领域&#xff0c;快速理解现有项目的架构是一项关键技能。Trae CN 作为一款强大的分析工具&#xff0c;能帮助开发者高效剖…

MCP协议量子加密实践:基于QKD的下一代安全通信(2025深度解析版)

一、量子计算威胁的范式转移与MCP协议改造必要性 1.1 传统加密体系的崩塌时间表 根据IBM 2025年量子威胁评估报告&#xff0c;当量子计算机达到4000个逻辑量子比特时&#xff08;预计2028年实现&#xff09;&#xff0c;现有非对称加密体系将在72小时内被完全破解。工业物联网…

STM32单片机入门学习——第40节: [11-5] 硬件SPI读写W25Q64

写这个文章是用来学习的,记录一下我的学习过程。希望我能一直坚持下去,我只是一个小白,只是想好好学习,我知道这会很难&#xff0c;但我还是想去做&#xff01; 本文写于&#xff1a;2025.04.18 STM32开发板学习——第一节&#xff1a; [1-1]课程简介第40节: [11-5] 硬件SPI读…

Model Context Protocol (MCP) 开放协议对医疗多模态数据整合的分析路径【附代码】

Model Context Protocol (MCP) 作为一种革命性的开放协议,正在重塑医疗领域多模态数据整合的方式。本文将深入分析MCP协议在医疗多模态数据整合中的具体路径、技术实现、应用场景及未来发展方向,揭示这一协议如何成为连接AI与医疗数据的关键桥梁。 MCP协议概述及其在医疗多模…

刀片服务器的散热构造方式

刀片服务器的散热构造是其高密度、高性能设计的核心挑战之一。其散热系统需在有限空间内高效处理多个刀片模块产生的集中热量,同时兼顾能耗、噪音和可靠性。以下从模块化架构、核心散热技术、典型方案对比、厂商差异及未来趋势等方面展开分析: 一、模块化散热架构 刀片服务器…

java 排序算法-快速排序

快速排序&#xff08;Quick Sort&#xff09;是一种高效的排序算法&#xff0c;它使用分治法&#xff08;Divide and Conquer&#xff09;策略来把一个序列分为较小和较大的两个子序列&#xff0c;然后递归地排序两个子序列。 快速排序算法的基本思想&#xff1a; 选择基准值&…