PyQt5在Pycharm上的环境搭建 -- Qt Designer + Pyuic + Pyrcc组合,大幅提升GUI开发效率

软件安装


目标软件:

  • Python解释器
  • Pycharm编辑器

Python官网: 点击访问Python官网

Pycharm官网:点击访问Pycharm官网

环境搭建


搭建完成后最终的环境详情:

python安装路径:D:\ProgramEnviron\Python\Python311Python 3.13.2
pip 25.1.1PyQt5 5.15.11
qt5_applications 5.15.2.2.3

1)首先配置一下pip的默认镜像资源,它可以有效的提高效率,否则下载速度将会很慢。配置语法及配置命令如下:

# pip config set global.index-url 镜像源地址
pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple

使用国内的各大镜像源进行下载,下载速度快!

清华大学镜像:https://pypi.tuna.tsinghua.edu.cn/simple
阿里云镜像:https://mirrors.aliyun.com/pypi/simple/
中科大镜像:https://pypi.mirrors.ustc.edu.cn/simple/
...

2)对pip进行升级,在终端执行下列命令:

pip install --upgrade pip #(或者pip install -U pip)

3)接下来安装PyQt5的环境,一共需要安装两个包,分别是pyqt5qt5_applications,具体命令如下:

# 安装qt环境
pip install pyqt5
# 安装qt相关环境,如designer、pyuic、pyrcc...都包含在qt5_applications内
pip install qt5_applications

4)通过安装的qt5_application添加外部工具,下图是打开添加外部工具步骤:

在这里插入图片描述

5)首先添加Qt Designer设计师,在打开的Create Tool窗口填写信息,名称填写为Qt Designer,程序选择刚才安装的qt5_applications模块的路径下的Qt\bin\designer.exe,此项参数为空,工作目录为默认。完成后点击OK即可;

参数设置:
Name: Qt Designer
Program: D:\ProgramEnviron\Python\Python311\Lib\site-packages\qt5_applications\Qt\bin\designer.exe
Arguments: 
Working directory: D:\ProgramEnviron\Python\Python311\Lib\site-packages\qt5_applications\Qt\bin

在这里插入图片描述

注意:此处的程序路径填写时是在自己本机的路径下找,以上是根据我的路径进行查找的,只需找到Python的安装路径就可以确定程序的路径了,程序路径位于Python路径下的 .\Lib\site-packages\qt5_applications\Qt\bin\designer.exe

可以通过终端进行对Python路径的查找,打开终端输入下列命令:

where python

在这里插入图片描述

6)然后添加pyuic工具,在打开的Create Tool窗口填写信息,名称填写为pyuic,程序选择Python路径下的D:\ProgramEnviron\Python\Python311\python.exe,此项参数为-m PyQt5.uic.pyuic $FileName$ -o $FileNameWithoutExtension$.py,工作目录为$FileDir$。完成后点击OK即可;

参数设置:
Name: pyuic
Program: :\ProgramEnviron\Python\Python311\python.exe
Arguments: -m PyQt5.uic.pyuic $FileName$ -o $FileNameWithoutExtension$.py
Working directory: $FileDir$

在这里插入图片描述

7)然后添加pyrcc工具,在打开的Create Tool窗口填写信息,名称填写为pyrcc,程序选择Python路径下的D:\ProgramEnviron\Python\Python311\python.exe,此项参数为-m PyQt5.pyrcc_main $FileName$ -o $FileNameWithoutExtension$_rc.py,工作目录为$FileDir$。完成后点击OK即可;

参数设置:
Name: pyuic
Program: :\ProgramEnviron\Python\Python311\python.exe
Arguments: -m PyQt5.pyrcc_main $FileName$ -o $FileNameWithoutExtension$_rc.py
Working directory: $FileDir$

在这里插入图片描述

等上述三个工具全部设置完成后,我们就相当于Qt5的环境设置完成了,点击Apply应用工具。

验证环境


验证Qt Designer

1)依次点击 Tools --> External Tools(外部工具) --> Qt Designer 打开设计师,进入设计师主界面,如下图所示:

在这里插入图片描述

2)在打开的设计师界面选择MainWindow窗体,点击创建,如下图:

在这里插入图片描述

3)接下来对界面进行设计,例如我设置一个简单的登录界面,如下图:

在这里插入图片描述

4)在设计完成后保存ui文件,记住自己的路径选择,后续要用,图示如下:

在这里插入图片描述

验证pyuic

1)将刚才保存的ui文件找到,使用Pycharm打开,在Pycharm界面资源管理器中找到该ui文件,右击选择 External Tools(外部工具) --> pyuic,点击完成后便会生成当前的ui文件的Python代码。如下图所示:

在这里插入图片描述

2)可以新建一个main.py文件来表示主文件,在该文件内添加如下代码(确保该文件与生成的ui的python在同一目录下):

import sys  from PyQt5.QtWidgets import QMainWindow, QApplication  
from untitled import Ui_MainWindow  class windows(QMainWindow, Ui_MainWindow):  def __init__(self):  super(windows, self).__init__()  self.setupUi(self)  # 格式化代码 ctrl + alt + L
if __name__ == "__main__":  app = QApplication(sys.argv)  ui = windows()  ui.show()  app.exec_()

3)添加完成后可以执行当前代码,发现运行结果与之前的设计器的效果相同,如下图:

在这里插入图片描述

验证pyrcc

1)重新打开Qt Designer设计师,打开之前保存的ui文件,如下图:

在这里插入图片描述

2)为该ui界面添加一个图片,成功添加后保存,如下图:

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

3)效果图如下,点击保存,然后再次回到Pycharm进行pyuic转换,这时会比之前多出一个.qrc文件,在该.qrc文件右击选择 External Tools(外部工具) --> pyrcc 进行转化,可以得到一个python文件。

在这里插入图片描述

在这里插入图片描述

结尾


至此,若根据上述操作能够成功验证三个工具,那我们的PyQt5的PyCharm环境就搭建完成了,接下来开启Qt5之旅吧!

原文地址: PyQt5在Pycharm上的环境搭建 – Qt Designer + Pyuic + Pyrcc组合,大幅提升GUI开发效率

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

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

相关文章

30天打牢数模基础-卷积神经网络讲解

案例代码实现一、代码说明本案例使用PyTorch实现一个改进版LeNet-5模型,用于CIFAR-10数据集的图像分类任务。代码包含以下核心步骤:数据加载与预处理(含数据增强,划分训练/验证/测试集);定义CNN网络结构&am…

Dev-C++——winAPI贪吃蛇小游戏

🚀欢迎互三👉:雾狩 💎💎 🚀关注博主,后期持续更新系列文章 🚀如果有错误感谢请大家批评指出,及时修改 🚀感谢大家点赞👍收藏⭐评论✍ 今天水一篇吧…

【openbmc6】entity-manager

文章目录 2.1 事件监听:dbus在linux上使用的底层通信方式多半是unix domain socket ,事件的到来可被抽象为:socket上有数据,可读 2.2 事件处理:由于主线程肯定有逻辑得跑,因此新开一个线程甚至多个线程专门用来监听和处理事件,但存在多线程就意味着可能存在竞争,存在竞…

Java 实现 UDP 多发多收通信

在网络通信领域,UDP(用户数据报协议)以其无连接、高效率的特点,在实时通信场景中占据重要地位。本文将结合一段实现 UDP 多发多收的 Java 代码,详细解析其实现逻辑,帮助开发者深入理解 UDP 通信的底层逻辑与…

Java学习第六十二部分——Git

目录 一、关键概述 二、核心概念 三、常用命令 四、优势因素 五、应用方案 六、使用建议 一、关键概述 提问:Git 是什么? 回答:一句话,分布式版本控制系统(DVCS),用来跟踪文件&#…

CDN和DNS 在分布式系统中的作用

一、DNS:域名系统(Domain Name System) 1. 核心功能 DNS是互联网的“地址簿”,负责将人类易记的域名(如www.baidu.com)解析为计算机可识别的IP地址(如180.101.50.242)。没有DNS&…

uniapp用webview导入本地网页,ios端打开页面空白问题

目前还没解决,DCloud官方也说不行 IOS下webview加载本地网页时,无法加载资源 - DCloud问答

软考 系统架构设计师系列知识点之面向服务架构设计理论与实践(8)

接前一篇文章:软考 系统架构设计师系列知识点之面向服务架构设计理论与实践(7) 所属章节: 第15章. 面向服务架构设计理论与实践 第3节 SOA的参考架构 15.3 SOA的参考架构 IBM的Websphere业务集成参考架构(如图15-2所示,以下简称参考架构)是典型的以服务为中心的企业集…

基于 Docker 及 Kubernetes 部署 vLLM:开启机器学习模型服务的新篇章

在当今数字化浪潮中,机器学习模型的高效部署与管理成为众多开发者和企业关注的焦点。vLLM 作为一款性能卓越的大型语言模型推理引擎,其在 Docker 及 Kubernetes 上的部署方式如何呢?本文将深入探讨如何在 Docker 及 Kubernetes 集群中部署 vL…

工业互联网六大安全挑战的密码“解法”

目录 工业互联网密码技术应用Q&A Q1:设备身份认证与接入控制 Q2:通信数据加密与完整性保护 Q3:远程安全访问 Q4:平台与数据安全 Q5:软件与固件安全 Q6:日志审计与抗抵赖 首传信安-解决方案 总…

基于springboot的在线问卷调查系统的设计与实现(源码+论文)

一、开发环境 1 Java语言 Java语言是当今为止依然在编程语言行业具有生命力的常青树之一。Java语言最原始的诞生,不仅仅是创造者感觉C语言在编程上面很麻烦,如果只是专注于业务逻辑的处理,会导致忽略了各种指针以及垃圾回收这些操作&#x…

民法学学习笔记(个人向) Part.1

民法学学习笔记(个人向) Part.1有关民法条文背后的事理、人心、经济社会基础;民法的结构民法学习的特色就是先学最难的民法总论,再学较难的物权法、合同法等,最后再学习最简单的婚姻、继承、侵权部分。这是一个由难到易的过程,尤为…

ElasticSearch Doc Values和Fielddata详解

一、Doc Values介绍倒排索引在搜索包含指定 term 的文档时效率极高,但在执行相反操作,比如查询一个文档中包含哪些 term,以及进行排序、聚合等与指定字段相关的操作时,表现就很差了,这时候就需要用到 Doc Values。倒排…

【C语言】解决VScode中文乱码问题

文章目录【C语言】解决VScode中文乱码问题弹出无法写入用户设置的处理方法弹出无法在只读编辑器编辑的问题处理方法【C语言】解决VScode中文乱码问题 💬欢迎交流:在学习过程中如果你有任何疑问或想法,欢迎在评论区留言,我们可以共…

MySQL笔记4

一、范式1.概念与意义范式(Normal Form)是数据库设计需遵循的规范,解决“设计随意导致后期重构困难”问题。主流有 三大范式(1NF、2NF、3NF),还有进阶的 BCNF、4NF、5NF 等,范式间是递进依赖&am…

切比雪夫不等式的理解以及推导【超详细笔记】

文章目录参考教程一、意义1. 正态分布的 3σ 法则2. 不等式的含义3. 不等式的意义二、不等式的证明1. 马尔科夫不等式马尔可夫不等式证明(YYY 为非负随机变量 )2. 切比雪夫不等式推导参考教程 一个视频,彻底理解切比雪夫不等式 一、意义 1. 正态分布的…

Spring Boot Jackson 序列化常用配置详解

一、引言在当今的 Web 开发领域,JSON(JavaScript Object Notation)已然成为数据交换的中流砥柱。无论是前后端分离架构下前后端之间的数据交互,还是微服务架构里各个微服务之间的通信,JSON 都承担着至关重要的角色 。它…

Jetpack ViewModel LiveData:现代Android架构组件的核心力量

引言在Android应用开发中,数据管理和界面更新一直是开发者面临的重大挑战。传统的开发方式常常导致Activity和Fragment变得臃肿,难以维护,且无法优雅地处理配置变更(如屏幕旋转)。Jetpack中的ViewModel和LiveData组件正…

Python数据分析案例79——基于征信数据开发信贷风控模型

背景 虽然模型基本都是表格数据那一套了,算法都没什么新鲜点,但是本次数据还是很值得写个案例的,有征信数据,各种,个人,机构,逾期汇总..... 这么多特征来做机器学习模型应该还不错。本次带来&…

板凳-------Mysql cookbook学习 (十二--------3_2)

3.3链接表 结构 P79页 用一个类图来表示EmployeeNode类的结构,展示其属性和关系: plaintext ----------------------------------------- | EmployeeNode | ----------------------------------------- | - emp_no: int …