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

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.hqwc.cn/news/409732.html

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

相关文章

openssl3.2 - 官方demo学习 - guide - tls-client-block.c

文章目录 openssl3.2 - 官方demo学习 - guide - tls-client-block.c概述记录问题server和client IP都为localhostserver和client IP都为127.0.0.1想到解决问题的方法1想到解决问题的方法2笔记END openssl3.2 - 官方demo学习 - guide - tls-client-block.c 概述 tls 客户端 官…

FFMPEG解码实时流,支持cpu、gpu解码

官网下载的ffmpeg目前只能下载到X64版本的库,具体编译请参考windows编译ffmpeg源码(32位库)_windows 32位ffmpeg动态库-CSDN博客 直接上代码 int VideoDecodeModule::Open(std::string strUrl) {AVFormatContext *pFormatCtx nullptr;AVCo…

grep 在运维中的常用可选项

一、对比两个文件 vim -d <filename1> <filename2> 演示&#xff1a; 需求&#xff1a;&#xff5e;目录下有两个文件一个test.txt 以及 text2.txt,需求对比两个文件的内容。 执行后会显示如图&#xff0c;不同会高亮。 二、两次过滤 场景&#xff1a;当需要多…

探索数据的奥秘:一份深入浅出的数据分析入门指南

数据分析 书籍推荐 入门读物 深入浅出数据分析啤酒与尿布数据之美数学之美 数据分析 Scipy and NumpyPython for Data AnalysisBad Data Handbook集体智慧编程Machine Learning in Action机器学习实战Building Machine Learning Systems with Python数据挖掘导论Machine L…

day20【LeetCode力扣】142.环形链表Ⅱ

day20【LeetCode力扣】142.环形链表Ⅱ 1.题目描述 给定一个链表的头节点 head &#xff0c;返回链表开始入环的第一个节点。 如果链表无环&#xff0c;则返回 null。 如果链表中有某个节点&#xff0c;可以通过连续跟踪 next 指针再次到达&#xff0c;则链表中存在环。 为了…

Vue3中provide,inject使用

一&#xff0c;provide,inject使用&#xff1a; 应用场景&#xff1a;向孙组件传数据 应用Vue3碎片&#xff1a; ref&#xff0c;reactive&#xff0c;isRef&#xff0c;provide, inject 1.provide,inject使用 a.爷组件引入 import {ref,provide} from vue const drinkListre…

pytest -- 进阶使用详解

pytest-html⽣成报告 Pytest-HTML 是⼀个插件&#xff0c;它可以⽣成漂亮且易于阅读的 HTML 测试报告。 pytest-html ⽣成报告的步骤 ① 安装 pytest-html 插件&#xff1a; pip install pytest-html ② 运⾏测试并⽣成报告&#xff1a; file name:main.pyimport pytest&qu…

Arduino快速上手esp8266方案开发

认识ESP8266 ESP8266 是 Espressif Systems 生产的 Wi-Fi 片上系统 (SoC)。它非常适合物联网和家庭自动化项目&#xff0c;目前有非常高的市场普及率&#xff0c;还有更加高端的同时支持wifi和蓝牙的双核心芯片ESP32&#xff0c;可以在乐鑫官网查看完整的芯片列表。 ESP8266芯…

SpringBoot框架自定义解析配置项占位符(${})获取配置

一、前言 在最近项目开发中&#xff0c;有一个需求&#xff0c;针对自定义注解中字符串属性值的设置需要支持使用”${xx}“占位符获取在SpringBoot框架配置文件中配置项对应的属性值&#xff0c;而且支持多个”${xx}“标识的配置任意拼接。 二、功能实现 从实现思路上说还是…

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

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

iphone 5s的充电时序原理图纸,iPAD充电讲解

上一篇写了iphone 5的时序。那是电池供电的开机时序。iphone 5s也是差不多的过程&#xff0c;不说了。现在看iphone5s手机充电时候的时序。iphone5s充电比iphone5充电简单了很多。 首先是usb接口接到手机上&#xff0c;usb线连接到J7接口上。J7接口不只是接usb&#xff0c;还能…

05-python之函数-函数的定义/函数的参数/函数返回值/函数说明文档/函数的嵌套使用/函数变量的作用域

01-函数的介绍 """ 演示&#xff1a;快速体验函数的开发及应用 ​ """ #需求&#xff0c;统计字符串的长度&#xff0c;不使用内置函数len() str1 "itheima" str2 "itcast" str3 "python" ​ #定义一个技术的变…