2024最新PyQt5及其工具(Qt Designer、PyUIC、PyRcc)手把手操作实践指南

news2024/11/30 2:38:33

2024最新PyQt5及其工具(Qt Designer、PyUIC、PyRcc)手把手操作实践指南

前言

最近做了一些个人项目,内部逻辑还是挺多的,而且也有想要开源的想法,但是总不能直接把源码端给大家直接运行,有一些需求还有萌新小白用得上的,所以还得做一个可视化的UI。想了想能够通过Python建立的UI工具,在我印象中有PyQt5和tkinter这两个还算常见,wxPython没见过几个人用过,所有还是打算写一个PyQt5的教程入门文章带大家操作实践一下PyQt5的用法。之前网页或者博客很多篇都是PyQt5没有分离plugins,还有几个坑要注意一下。

1.PyQt工具包

PyQt5简述

PyQt5是一个创建图形用户界面(GUI)应用程序的工具集。它是Qt库的Python绑定之一,Qt库是一套跨平台的C++库,广泛用于开发GUI应用以及非GUI应用的编程工具。PyQt5支持多种操作系统,包括Windows、macOS、Linux等,使得用它开发的应用可以在这些平台上无缝运行。一般在嵌入式设备使用可视化UI大部分是PyQt5,PyQt5还提供了许多高级功能,如图形和动画支持、数据库交互、网络编程等。

PyQt5-tools简述

PyQt5-tools 是一个与 PyQt5 配合使用的工具集,它提供了一系列有助于开发 PyQt5 应用程序的工具和组件。这个工具集的主要作用是简化开发流程、提高效率,并帮助创建更加专业和美观的用户界面。

Qt Designer

功能:Qt Designer 是一个拖放式界面设计工具,允许开发者以可视化的方式创建和布局窗口和对话框,而无需编写代码。使用 Qt Designer,可以快速设计复杂的界面,并生成一个 XML 文件(.ui 文件),这个文件后续可以在 PyQt5 程序中加载或转换为 Python 代码。

在这里插入图片描述

pyuic 和 pyrcc

pyuic 是一个命令行工具,用于将 Qt Designer 生成的 .ui 文件转换成 Python 代码。pyrcc 用于处理 Qt 资源文件(如图片),将它们转换成 Python 可以使用的模块。这些工具使得将设计和资源无缝集成到 PyQt5 应用程序中变得更加简单。

2.工具包安装

首先安装PyQt5:

pip install PyQt5 -i https://pypi.douban.com/simple

安装常用的pyqt工具库 PyQt5-tools:

pip install PyQt5-tools -i https://pypi.douban.com/simple

安装完检查一下是否安装到了想要的Python运行环境下面:
在这里插入图片描述

除此之外,由于新版的PyQt5的plugins分离出去了,还需要安装一下pyqt5_plugins。

pip install PyQt5-plugins

3.环境配置

我们要让系统能够找到对应指令就得将文件运行路径放到环境变量里面去:

1.添加pyqt5-tools

在这里插入图片描述

2.新建QT_PLUGIN_PATH

在环境变量界面中点击“新建”,在系统环境变量中新建名为“QT_PLUGIN_PATH”的变量:

\Lib\site-packages\PyQt5\Qt5\plugins

在这里插入图片描述

需根据实际情况修改。以上两步环境变量设置完成,现在需要在Pycharm设置工具。

4.Pycharm工具设置

Qt Designer

点击菜单栏文件,弹出下拉框,选择设置。在设置界面中选择“Tools”→“External Tools”,该部分操作如下图所示:

点击“加号”按钮新建工具,弹出工具配置界面:

在这里插入图片描述

其中\Lib\site-packages\QtDesigner\designer.exe为我们要填写的程序,工作目录为:

$FileDir$

PyUIC

同样按照以上方式添加PyUIC工具,点击“加号”按钮,在弹出的编辑设置框中Name一栏填写“PyUIC”;

在这里插入图片描述

程序在下载的Python环境下的Scripts目录下面,其中实参为:

$FileName$
-o
$FileNameWithoutExtension$.py

PyRcc

PyRcc工具的配置方式与PyUIC相似:

在这里插入图片描述

实参为:

$FileName$
-o
$FileNameWithoutExtension$_rc.py

设置完成后简单演示一下如何使用,首先打开或新建一个项目,按一下展示点击工具栏的External Tools,可以看到我们之前设定的三个工具:

在这里插入图片描述

打开QT-Designer可以进入到QT设计页面:

在这里插入图片描述

具体如何对Qt页面编辑以及左边菜单栏的操作我们不展开详细描述,后面博主将会出一系列专门的文章讲解Qt开发。这里再讲述一下我们保存好的UI文件和qrc文件该如何转化为python代码。

5.程序转化

PyCharm中选中保存的ui文件,使用“Tools”下的“External Tools”中的“PyUIC”工具将该文件转换为需要的py文件:

在这里插入图片描述

同理PyRcc工具将该资源文件转换为需要的py文件。

使用“Tools”下的“External Tools”中的“PyUIC”工具将该文件转换为需要的py文件:

[外链图片转存中...(img-McTDuF0c-1705476745899)]

同理PyRcc工具将该资源文件转换为需要的py文件。

在这里插入图片描述

欢迎私聊交流,点关注,防走丢,如有纰漏之处,请留言指教,非常感谢

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

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

相关文章

第三届iEnglish全国ETP大赛展现教育游戏新趋势

随着社会步入数字化纪元,游戏作为信息交流和传播的重要载体,在教育领域的潜能日益凸显。特别是寓教于乐的“教育游戏”学习方式让更多家长和孩子体验到“玩中学,学中玩”的乐趣,在教育领域的潜能也日益凸显。 本周五(1月19日)晚上7点,国内首个教育游戏赛事、以“玩转英语,用iE…

私域运营的关键:如何确保你的努力能转化为销售成果?

群发掉粉,不群发就没有业绩。 不知道你是否感到尴尬,但我们销售团队确实遇到了这个问题! 私域运营似乎等同于做流量和群发广告,但这种方法似乎有些问题,而且大多数运营人员找不到更好的解决方案。 特别是当业绩不佳…

git项目管理

Git工作流程图 git 基础指令 git init #创建本地仓库,创建成功后,当前目录会多一个.git文件夹 git status #查看修改状态 git add . #添加工作区到暂存区 git commit -m 注释内容 #提交暂存区到本地仓库(commit) git log …

vue 里 props 类型为 Object 时设置 default: () => {} 返回的是 undefined 而不是 {}?

问题 今天遇到个小坑&#xff0c;就是 vue 里使用 props 传参类型为 Object 的时候设置 default: () > {} 报错&#xff0c;具体代码如下 <template><div class"pre-archive-info"><template v-if"infoData.kaimo ! null">{{ infoD…

python学生信息管理系统(界面+数据库)

&#xff0c;今天跟大家分享一下一个python期末大作业的开发思路。大家可以参考思路自己修改完善。我们讲解的是学生信息管理系统。界面还是用tkinter做&#xff0c;数据库使用sqlite。 先看一下软件截图 数据库设计 编写过程 1.导库 from tkinter import * from tkinter.messa…

Python爬虫---scrapy框架---当当网管道封装

项目结构&#xff1a; dang.py文件&#xff1a;自己创建&#xff0c;实现爬虫核心功能的文件 import scrapy from scrapy_dangdang_20240113.items import ScrapyDangdang20240113Itemclass DangSpider(scrapy.Spider):name "dang" # 名字# 如果是多页下载的话, …

动图搞懂三极管的工作原理

三极管的电流放大作用应该算是模拟电路里面的一个难点内容&#xff0c;我想用这几个动画简单的解释下为什么小电流Ib能控制大电流Ic的大小&#xff0c;以及放大电路的原理。 这里的三极管也叫双极型晶体管&#xff0c;模电的放大电路和数电的简单逻辑电路里面都会用到。有集电…

2. Git

2. Git Git简介 Git是什么&#xff1f; Git是目前世界上最先进的分布式版本控制系统&#xff08;没有之一&#xff09;。 Git有什么特点&#xff1f;简单来说就是&#xff1a;高端大气上档次&#xff01; 那什么是版本控制系统&#xff1f; 如果你用Microsoft Word写过长篇大…

HTML---Jquery选择器

文章目录 前言一、pandas是什么&#xff1f;二、使用步骤 1.引入库2.读入数据总结 本章目标 会使用基本选择器获取元素会使用层次选择器获取元素会使用属性选择器获取元素会使用过滤选择器获取元素 …

rust跟我学二:模块编写与使用

图为RUST吉祥物 大家好,我是get_local_info作者带剑书生,这里用一篇文章讲解get_local_info中模块的使用。 首先,先要了解get_local_info是什么? get_local_info是一个获取linux系统信息的rust三方库,并提供一些常用功能,目前版本0.2.4。详细介绍地址:[我的Rust库更新]g…

yum仓库及NFS共享

目录 一、yum仓库 &#xff08;一&#xff09;yum仓库简介 &#xff08;二&#xff09;实现过程 &#xff08;三&#xff09;yum命令 &#xff08;四&#xff09;搭建内网yum仓库 1.FTP服务搭建yum仓库 ①服务端操作 ②客户端操作 2.http服务搭建yum仓库 ①服务端操作…

电路原理1-线性电阻

前言&#xff1a;整理笔记基于清华大学于歆杰老师的《电路原理》&#xff0c;电路原理是基于无源负载和电源组成电路的分析方法。 1.基础数学知识 算术&#xff1a;数字之间的运算 代数&#xff1a;用变量和函数来代替数字 微积分&#xff1a;描述函数的累积效应&#xff0…

【Python数据可视化】matplotlib之设置子图:绘制子图、子图共享x轴坐标、调整子图间距、设置图片大小

文章传送门 Python 数据可视化matplotlib之绘制常用图形&#xff1a;折线图、柱状图&#xff08;条形图&#xff09;、饼图和直方图matplotlib之设置坐标&#xff1a;添加坐标轴名字、设置坐标范围、设置主次刻度、坐标轴文字旋转并标出坐标值matplotlib之增加图形内容&#x…

Informer简单理解

一、输入层Encoder改进&#xff1a; 1、ProbAttention算法计算权值&#xff1a; 原Transformer中的注意力机制时间复杂度N^2&#xff0c;而Informer作为实时性要求高的长时间序列预测算法必然需要提高效率&#xff0c;降低时间开销。 1.简化K&#xff1a; 对每个Q不再与所有…

073:vue+mapbox 加载here地图(影像瓦片图 v3版)

第073个 点击查看专栏目录 本示例的目的是介绍演示如何在vue+mapbox中加载here地图的影像瓦片图。 直接复制下面的 vue+mapbox源代码,操作2分钟即可运行实现效果 文章目录 示例效果配置方式示例源代码(共77行)相关API参考:专栏目标示例效果

Rust-Panic

什么是panic 在Rust中&#xff0c;有一类错误叫作panic。示例如下&#xff1a; 编译&#xff0c;没有错误&#xff0c;执行这段程序&#xff0c;输出为&#xff1a; 这种情况就引发了一个panic。在这段代码中&#xff0c;我们调用了Option::unwrap()方法&#xff0c;正是这个方…

Softmax回归(多类分类模型)

目录 1.对真实值类别编码&#xff1a;2.预测值&#xff1a;3.目标函数要求&#xff1a;4.使用Softmax模型将输出置信度Oi计算转换为输出匹配概率y^i&#xff1a;5.使用交叉熵作为损失函数&#xff1a;6.代码实现&#xff1a; 1.对真实值类别编码&#xff1a; y为真实值&#xf…

Java顺序表(2)

&#x1f435;本篇文章将对ArrayList类进行讲解 一、ArrayList类介绍 上篇文章我们对顺序表的增删查改等方法进行了模拟实现&#xff0c;实际上Java提供了ArrayList类&#xff0c;而在这个类中就包含了顺序表的一系列方法&#xff0c;这样在用顺序表解决问题时就不用每次都去实…

smartgit选择30天试用后需要输入可执行文件

突然有一天smartgit提示到期了&#xff0c;我按照以往那样删除license和preferences文件后&#xff0c;选择30天试用&#xff0c;弹出了需要选择git可执行文件。 我尝试选择了我的git.exe&#xff0c;发现根本不行&#xff0c;提示让我执行下git --version 执行过后提示我的.gi…

【Shell编程练习】编写 shell 脚本,打印 9*9 乘法表

系列文章目录 输出Hello World 通过位置变量创建 Linux 系统账户及密码 监控内存和磁盘容量&#xff0c;小于给定值时报警 猜大小 输入三个数并进行升序排序 编写脚本测试 192.168.4.0/24 整个网段中哪些主机处于开机状态,哪些主机处于关机状态 系列文章目录编写 shell 脚本,打…