【PyQt5】环境配置

PyQt5 环境配置

  • 一、前言
    • 1.1 PyQt5介绍
    • 1.2 PyCharm集成Pyqt5
  • 二、pyqt5安装
  • 三、PyQt5-tools工具包安装
  • 四、常用工具环境配置
    • 4.1、环境变量配置
    • 4。2、验证是否安装成功
  • 五、pycharm中设置Qt工具(Qt Designer、PyUIC、PyRcc)
    • 5.1、配置Qt Designer
    • 5.2、配置PyUIC
    • 5.3 、配置PyRcc
  • 六、使用演示
    • 1、打开软件后,在弹出的引导界面选择“Main Window”,然后点击“Create”按钮,创建一个窗体界面,如下图所示:![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/7bd88dc96ca94a8b959bdfd77cec88ca.png)
    • 2、在软件界面左侧的控件选择栏中拖动三个“Push Button”到中间的设计框中,双击按钮依次修改显示字符,如下图所示
    • 3、在软件界面左侧的控件选择栏中拖动两个“Label”控件到中间的设计框中,如下图所示:
    • 4、在当前项目路径下创建资源文件文件夹 放入图片资源
    • 5、如下图所示,点击“Resource Browser”下的铅笔图表,弹出新建qrc文件的编辑框。
    • 6、同时qrc文件 添加前缀与文件夹同名,再点击添加文件,向qrc资源文件中添加两张图片,最后点击“OK”确定。
    • 7、选中添加进来的label窗体,在右侧属性编辑栏中的“text”属性中“pixmap”一栏选择“Choose Resource”,在资源选择框中选择刚刚添加进qrc的图片,点击确定,对另一个label也进行同样的操作,如下图所示
    • 8、在PyCharm中选中保存的ui文件,使用“Tools”下的“External Tools”中的“PyUIC”工具将该文件转换为需要的py文件。
    • 9、在PyCharm中选中保存的qrc文件,使用“Tools”下的“External Tools”中的“PyRcc”工具将该资源文件转换为需要的py文件。
    • 10、在PyCharm中打开使用“PyUIC”工具转换的py文件,在下面添加如下代码:

一、前言

1.1 PyQt5介绍

Qt(官方发音 [kju:t])是一个跨平台的C++开发库,主要用来开发图形用户界面(Graphical User Interface,GUI)程序

Qt 是纯 C++ 开发的,正常情况下需要先学习C语言、然后在学习C++然后才能使用Qt开发带界面的程序

多亏了开源社区使得Qt 还可以用Python、Ruby、Perl 等脚本语言进行开发。

Qt 支持的操作系统有很多,例如通用操作系统 Windows、Linux、Unix,智能手机系统Android、iOS, 嵌入式系统等等。可以说是跨平台的

QT官网:https://doc.qt.io/qt-5/index.html

PyQt的开发者是英国的“Riverbank Computing”公司。它提供了GPL(简单的说,以GPL协议发布到网上的素材,你可以使用,也可以更改,但是经过你更改然后再次发布的素材必须也遵守GPL协议,主要要求是必须开源,而且不能删减原作者的声明信息等)与商业协议两种授权方式,因此它可以免费地用于自由软件的开发。

PyQt可以运行于Microsoft Windows、Mac OS X、Linux以及Unix的多数变种上。

PyQt是Python语言的GUI(Graphical User Interface,简称 GUI,又称图形用户接口)编程解决方案之一

可以用来代替Python内置的Tkinter。其它替代者还有PyGTK、wxPython等,与Qt一样,PyQt是一个自由软件

文档相关地址:https://www.riverbankcomputing.com/software/pyqt/

比较不错的参考资料:https://wiki.python.org/moin/PyQt/Tutorials

  • Qt (C++ 语言 GUI ) PyQt = Python + Qt技术

  • Tkinter Python官方采用的标准库,优点是作为Python标准库、稳定、发布程序较小,缺点是控件相对较少。

  • wxPython 基于wxWidgets的Python库,优点是控件比较丰富,缺点是稳定性相对差点、文档少、用户少。

  • PySide2、PyQt5 基于Qt 的Python库,优点是控件比较丰富、跨平台体验好、文档完善、用户多。缺点是 库比较大,发布出来的程序比较大。

  • PyQt5 的开发者是英国的“Riverbank Computing”公司 , 而 PySide2 则是 qt 针对python语言提供的专门

1.2 PyCharm集成Pyqt5

很多情况下需要为程序设计一个GUI界面,在Python中使用较多的用户界面设计工具是PyQt。由于通常我们使用较多的IDE是PyCharm,为了方便地使用PyQt进行用户界面设计,这里总结了在PyCharm安装配置的简单安装方法。可能有人还不清楚这几个工具的用途,这里对要安装配置的依赖包和工具简介如下:

  • PyQt5:PyQt5是一套Python绑定Digia QT5应用的框架。Qt库是最强大的GUI库之一,PyQt5做为Python的一个模块,它有620多个类和6000个函数和方法。这是一个跨平台的工具包,它可以运行在所有主要的操作系统,包括UNIX,Windows,Mac OS。PyQt5是双重许可。开发者可以在GPL和商业许可之间进行选择,详细可访问PyQt5的官方网站。

  • PyQt5-tools:PyQt5中没有提供常用的Qt工具,比如图形界面开发工具Qt Designer,PyQt5-tools中包含了一系列常用工具。

  • Qt Designer:可以通过Qt Designer来编写UI界面,Qt Designer的设计符合MVC的架构,其实现了视图和逻辑的分离,从而实现了开发的便捷。Qt Designer中的操作方式十分灵活,其通过拖拽的方式放置控件可以随时查看控件效果。Qt Designer随PyQt5-tools包一起安装,其安装路径在 “Python安装路径\Lib\site-packages\pyqt5-tools”下。

  • PyUIC:Qt Designer生成的.ui文件(实质上是XML格式的文件)可以通过pyuic5工具转换成.py文件。

  • PyRcc:在使用PyQt开发界面时,在Qt Designer中使用的图片等资源需要将其编译为py文件,这时需要用到PyRcc工具方便地将qrc文件转换为py文件。

二、pyqt5安装

pip install PyQt5 -i https://pypi.tuna.tsinghua.edu.cn/simple/

三、PyQt5-tools工具包安装

包含PyQt常用工具 Qt Designer、PyUIC、PyRcc

pip install PyQt5-tools -i https://pypi.tuna.tsinghua.edu.cn/simple/

四、常用工具环境配置

4.1、环境变量配置

其实这几个工具在安装PyQt5-tools的时候已经包括在目录中,只不过要在PyCharm中方便使用还需要一些配置步骤。首先为了保证Windows系统能够正确识别PyQt5-tools的常见命令,还需要将PyQt5-tools的安装目录添加到系统环境变量Path中。

  • 1.将PyQt5-tools的安装目录添加到系统环境变量Path中。
    在这里插入图片描述
  • 2.在环境变量界面中点击新建,新建名设为QT_PLUGIN_PATH,在安装目录中找到plugins文件夹路径(根据实际情况填写)D:\python\work\Excel_Utils\venv\Lib\site-packages\pyqt5_plugins,点击确定即可
    在这里插入图片描述

4。2、验证是否安装成功

1、打开pycharm,新建一个py文件,输入:

import sys
from PyQt5.QtWidgets import QWidget, QApplicationapp = QApplication(sys.argv)
widget = QWidget()
widget.resize(640, 480)
widget.setWindowTitle("Hello, PyQt5!")
widget.show()
sys.exit(app.exec())

2、点击运行,如果没有报错并且出现新的窗口"Hello, PyQt5!",则表示安装成功
在这里插入图片描述

五、pycharm中设置Qt工具(Qt Designer、PyUIC、PyRcc)

这里主要是配置两个工具,一个是绘图工具Qt Designer,直接以 HTML 形式绘制工具的界面 UI,另外一个是将 HTML 界面一键转换成 py 文件的工具PyUIC。

5.1、配置Qt Designer

首先配置第一个工具Qt Designer
1、打开pycharm,点击菜单栏“File”,弹出下拉框,选择“Setting”,弹出设置界面。在设置界面中选择“Tools”→“External Tools” 点击+号新建工具,之后会弹出工具配置界面

  • ①Name:自己设置扩展工具的名字,这里我设置为QTDesigner。
  • ②Program:填写 PyQtDesigner 安装的路径,也就是安装的 designer.exe 所在的路径,不同版本存储的路径可能不一样,得自己去 Python 的安装路径下面找到。例如:我安装后的路径在 D:\python\work\Excel_Utils\venv\Lib\site-packages\qt5_applications\Qt\bin\designer.exe
  • ③Working directory :就填 F i l e D i r FileDir FileDir,比较方便的也可以点击右侧 Insert Macro…,然后找到 F i l e D i r FileDir FileDir。或者可以填写 P r o j e c t F i l e D i r ProjectFileDir ProjectFileDir。前者表示将当前.ui文件生成的.py文件储存到当前目录;后者表示将当前.ui文件生成的.py文件储存到项目主目录下,个人认为写前者即可。
    在这里插入图片描述

5.2、配置PyUIC

PyUIC(就是将绘制的界面UI转换成py文件的工具),步骤同理,只不过设置的参数有所改变

  • ①Program:填写pyuic5 安装的路径,也就是安装的 pyuic5 .exe 所在的路径,不同版本存储的路径可能不一样,得自己去 Python 的安装路径下面找到。例如:我安装后的路径在D:\python\work\Excel_Utils\venv\Scripts\pyuic5.exe
  • ②Arguments:填写如下:
$FileName$ -o $FileNameWithoutExtension$.py 

这条语句的意思是将选中的xxx.ui 文件转换为同名的xxx.py文件
需要特别注意的是,执行的时候需要右键选中对应的xxx.ui 文件,不然会出错的。

  • ③Working directory: F i l e D i r FileDir FileDir
    在这里插入图片描述

5.3 、配置PyRcc

与PyUIC配置相相似在这里插入图片描述

六、使用演示

依赖包和工具安装配置完成,下面简单演示一下如何使用。首先打开或新建一个Python项目,点击菜单栏中的“Tools”,选择“External Tools”,可以看到之前设置好的三个工具,选择“Qt Designer”打开Qt设计工具,步骤如下图所示:
在这里插入图片描述

1、打开软件后,在弹出的引导界面选择“Main Window”,然后点击“Create”按钮,创建一个窗体界面,如下图所示:在这里插入图片描述

2、在软件界面左侧的控件选择栏中拖动三个“Push Button”到中间的设计框中,双击按钮依次修改显示字符,如下图所示

在这里插入图片描述

3、在软件界面左侧的控件选择栏中拖动两个“Label”控件到中间的设计框中,如下图所示:

在这里插入图片描述

4、在当前项目路径下创建资源文件文件夹 放入图片资源

在这里插入图片描述

5、如下图所示,点击“Resource Browser”下的铅笔图表,弹出新建qrc文件的编辑框。

在这里插入图片描述
点击新建 按钮新建一个qrc文件, 资源文件选择为当前项目目录下
在这里插入图片描述

6、同时qrc文件 添加前缀与文件夹同名,再点击添加文件,向qrc资源文件中添加两张图片,最后点击“OK”确定。

在这里插入图片描述

7、选中添加进来的label窗体,在右侧属性编辑栏中的“text”属性中“pixmap”一栏选择“Choose Resource”,在资源选择框中选择刚刚添加进qrc的图片,点击确定,对另一个label也进行同样的操作,如下图所示

在这里插入图片描述最终完成后的界面,点击菜单栏“File”下“Save”将该界面保存为ui文件并置于项目目录下。

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

在这里插入图片描述
转换成功在这里插入图片描述

9、在PyCharm中选中保存的qrc文件,使用“Tools”下的“External Tools”中的“PyRcc”工具将该资源文件转换为需要的py文件。

在这里插入图片描述

10、在PyCharm中打开使用“PyUIC”工具转换的py文件,在下面添加如下代码:

if __name__ == '__main__':import sysfrom PyQt5.QtWidgets import QApplication, QMainWindowimport pics_ui_rc # 导入添加的资源(根据实际情况填写文件名)app = QApplication(sys.argv)MainWindow = QMainWindow()ui = Ui_MainWindow()ui.setupUi(MainWindow)MainWindow.show()sys.exit(app.exec_())

在PyCharm中点击运行该文件,最终运行界面如下所示:

在这里插入图片描述

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

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

相关文章

C++11 设计模式4. 抽象工厂(Abstract Factory)模式

问题的提出 从前面我们已经使用了工厂方法模式 解决了一些问题。 现在 策划又提出了新的需求:对于各个怪物,在不同的场景下,怪物的面板数值会发生变化, //怪物分类:亡灵类,元素类,机械类 …

【数据交换格式】网络socket编程温度采集智能存储与上报项目技术------JSON、TLV

作者简介: 一个平凡而乐于分享的小比特,中南民族大学通信工程专业研究生在读,研究方向无线联邦学习 擅长领域:驱动开发,嵌入式软件开发,BSP开发 作者主页:一个平凡而乐于分享的小比特的个人主页…

蓝桥杯物联网竞赛_STM32L071KBU6_全部工程及国赛省赛真题及代码

包含stm32L071kbu6全部实验工程、源码、原理图、官方提供参考代码及国、省赛真题及代码 链接:https://pan.baidu.com/s/1pXnsMHE0t4RLCeluFhFpAg?pwdq497 提取码:q497

【零基础学数据结构】双向链表

1.双向链表的概念 1.1头节点 1.2带头双向循环链表 注意: 哨兵位创建后,首尾连接自己 1.3双链表的初始化 // 双向链表的初始化 void ListInit(ListNode** pphead) {// 给双链表创建一个哨兵位*pphead ListBuyNode(-1); } 2.双向链表的打印 // 双向…

扭蛋机小程序:线上扭蛋机模式发展空间有多大?

潮玩行业近几年的发展非常快,推动了扭蛋机市场的发展,越来越多的人加入到了扭蛋机赛道中,市场迎来了新的发展期。如今,我国的二次元文化的发展不断成熟,扭蛋机主打的二次元商品迎来了更多的商业机会。 一、互联网扭蛋机…

uniapp 上传视频到阿里云之后回显视频获取视频封面

uniapp 上传视频到阿里云之后回显视频获取视频封面 官网的解决方案 1.initial-time Number 指定视频初始播放位置&#xff0c;单位为秒&#xff08;s&#xff09;。 没什么卵用 2.使用 uni.createVideoContext(“myVideo”, this).seek(number)。 没什么卵用 <video :id&quo…

Proteus 8 的使用记录

创建仿真文件 新建文件&#xff1a;默认下一步&#xff0c;至完成创建。 功能选择如图&#xff1a; 放置器件 常用元器件名称 keywords 常用51单片机 AT89C52 晶振 CRYSTAL 电阻 RES 排阻 RESPACK-8 瓷片电容 CAP 电解电容 CAP-ELEC 单刀单掷开关 S…

【Tars-go】腾讯微服务框架学习使用03-- TarsUp协议

3 TarsUP协议 统一通信协议 TarsTup | TarsDocs (tarscloud.github.io) TarsDocs/base at master TarsCloud/TarsDocs (github.com) &#xff1a; 有关于tars的所有介绍 每一个rpc调用双方都约定一套数据序列化协议&#xff0c;gprc用的是protobuff&#xff0c;tarsgo是统一…

C语言 函数——函数封装与程序的健壮性

目录 函数封装&#xff08;Encapsulation&#xff09; 如何增强程序的健壮性&#xff1f; 如何保证不会传入负数实参&#xff1f; 函数设计的基本原则 函数封装&#xff08;Encapsulation&#xff09; 外界对函数的影响——仅限于入口参数 函数对外界的影响——仅限于一个…

[CSS]使用方式+样式属性

层叠样式表&#xff08;Cascading Style Sheets&#xff09;&#xff0c;与HTML一样&#xff0c;也是一种标记语言&#xff0c;其作用就是给HTML页面标签添加各种样式&#xff0c;定义网页的显示效果&#xff0c;将网页内容和显示样式进行分离&#xff0c;提高了显示功能。简单…

【漏洞复现】WordPress Welcart 任意文件读取漏洞(CVE-2022-4140)

0x01 产品简介 Welcart 是一款免费的 WordPress 电子商务插件。Welcart 具有许多用于制作在线商店的功能和自定义设置。您可以轻松创建自己的原始在线商店。 0x02 漏洞概述 Welcart存在任意文件读取漏洞&#xff0c;未授权的攻击者可以通过该漏洞读取任意文件&#xff0c;获…

2024年MathorCup数学建模A题移动通信网络中PCI规划问题解题文档与程序

2024年第十四届MathorCup高校数学建模挑战赛 A题 移动通信网络中PCI规划问题 原题再现&#xff1a; 物理小区识别码(PCI)规划是移动通信网络中下行链路层上&#xff0c;对各覆盖小区编号进行合理配置&#xff0c;以避免 PCI 冲突、PCI 混淆以及 PCI 模3 千扰等现象。PCI 规划…

时序预测 | Matlab实现SSA-ESN基于麻雀搜索算法(SSA)优化回声状态网络(ESN)的时间序列预测

时序预测 | Matlab实现SSA-ESN基于麻雀搜索算法(SSA)优化回声状态网络(ESN)的时间序列预测 目录 时序预测 | Matlab实现SSA-ESN基于麻雀搜索算法(SSA)优化回声状态网络(ESN)的时间序列预测预测效果基本介绍程序设计参考资料 预测效果 基本介绍 1.Matlab实现SSA-ESN基于麻雀搜索…

Unity DOTS1.0 入门(3) System与SystemGroup 概述

System与SystemGroup 概述 System System是提供一种代码逻辑,改变组件的数据状态,从一个状态到另外一个状态System在main thread里面运行, system.Update方法每一帧执行一次(其他线程中运行的就是JobSystem的事情了&#xff09;System是通过一个System Group这个体系来决定它…

IP地址定位技术在各领域的作用

IP地址定位是通过确定IP地址的物理位置来定位一个设备的技术&#xff0c;它在现代社会的多个领域中都有着广泛的应用。以下将详细探讨IP地址定位的应用场景&#xff0c;以期对读者有所启发。 首先&#xff0c;在网络安全领域&#xff0c;IP地址定位发挥着至关重要的作用。网络…

10 Php学习:循环

在 PHP 中&#xff0c;提供了下列循环语句&#xff1a; while - 只要指定的条件成立&#xff0c;则循环执行代码块do…while - 首先执行一次代码块&#xff0c;然后在指定的条件成立时重复这个循环for - 循环执行代码块指定的次数foreach - 根据数组中每个元素来循环代码块 当…

【300套】基于Springboot+Vue的Java实战开发项目(附源码+演示视频+LW)

大家好&#xff01;我是程序员一帆&#xff0c;感谢您阅读本文&#xff0c;欢迎一键三连哦。 &#x1f9e1;今天给大家分享300的Java毕业设计&#xff0c;基于Springbootvue框架&#xff0c;这些项目都经过精心挑选&#xff0c;涵盖了不同的实战主题和用例&#xff0c;可做毕业…

Rocky(Centos)数据库等高并发或高io应用linux系统调优,及硬件问题排查(含网络、磁盘、系统监控)

一、系统参数优化 默认的最大打开文件数是1024.不满足生产环境的要求。按照如下配置&#xff1a; 1、修改 systemctl管理的 servie 资源限制 编辑/etc/systemd/system.conf # 全局的打开文件数 DefaultLimitNOFILE2097152 # 全局打开进程数 DefaultLimitNPROC655352、调整系…

【c++】优先级队列|反向迭代器(vector|list)

优先级队列的常用函数的使用 #include<iostream> #include<queue> using namespace std;int main() {priority_queue<int>st;st.push(1);st.push(7);st.push(5);st.push(2);st.push(3);st.push(9);while (!st.empty()){cout << st.top() << &qu…

2024年MathorCup数学建模B题甲骨文智能识别中原始拓片单字自动分割与识别研究解题文档与程序

2024年第十四届MathorCup高校数学建模挑战赛 B题 甲骨文智能识别中原始拓片单字自动分割与识别研究 原题再现&#xff1a; 甲骨文是我国目前已知的最早成熟的文字系统&#xff0c;它是一种刻在龟甲或兽骨上的古老文字。甲骨文具有极其重要的研究价值&#xff0c;不仅对中国文…