安装 PyQt5 保姆级教程

作者:billy
版权声明:著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处

前言

博主之前做应用层开发用的一直是 Qt,这次尝试一下在 python 中使用 Pyqt5 模块来开发 UI 界面,这里做一些记录,方便后期回顾。

1. 安装 PyQt5

PyQt5 是一套 Python 绑定 Digia QT5 应用的框架,可以用来开发UI界面。这是一个跨平台的工具包,它可以运行在所有主要的操作系统上,包括UNIX,Windows,Mac OS。PyQt5 是双重许可。开发者可以在 GPL 和商业许可之间进行选择,详细可访问官方网站。

安装命令如下:
pip install PyQt5 -i https://pypi.douban.com/simple

除了 PyQt5 模块,我们还需要安装 PyQt5-tools 模块。由于在 PyQt5 中没有提供常用的 Qt 工具,而 PyQt5-tools 模块中包含了一系列常用的工具。

安装命令如下:
pip install PyQt5-tools -i https://pypi.douban.com/simple

通过 pip list可以查看模块是否已安装

在这里插入图片描述

2. 测试 PyQt5 的功能

创建一个文本,命名为 pyqt5_test.py
输入代码如下:

import sys
from PyQt5.QtWidgets import QApplication, QLabelif __name__ == "__main__":app = QApplication(sys.argv)label = QLabel("Hello PyQt5")label.setGeometry(0,0,300,200);label.show()sys.exit(app.exec_())

这是一个简单的小 demo,运行效果如下所示,可以显示一个弹窗
在这里插入图片描述

3. 在 Pycharm 中使用 PyQt5

1)使用本地环境创建项目 Demo
在这里插入图片描述

2)配置外部工具
在这里插入图片描述

名称:Qt-Designer
描述:打开 Qt Designer 工具快速制作UI界面
程序:designer.exe 的安装路径(我的路径:D:\Python\Python38\Lib\site-packages\qt5_applications\Qt\bin\designer.exe)
参数:无
工作目录:$FileDir$
名称:PyUIC
描述:把 Qt Designer 生成的 .ui 文件转换成 .py 文件
程序:pyuic5.exe 的安装路径(我的路径:D:\Python\Python38\Scripts\pyuic5.exe)
参数:$FileName$ -o $FileNameWithoutExtension$_rc.py
工作目录:$FileDir$
名称:PyRcc
描述:把 Qt Designer 中用到的资源文件 qrc 转换成 .py 文件
程序:pyrcc5.exe 的安装路径(我的路径:D:\Python\Python38\Scripts\pyrcc5.exe)
参数:$FileName$ -o $FileNameWithoutExtension$_rc.py
工作目录:$FileDir$

在这里插入图片描述

3)通过 Qt Designer 创建 UI 界面
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

拖入一个 Label,删除文本,在属性中选择背景图像
在这里插入图片描述

可以显示图像,保存文件为 text.ui
在这里插入图片描述

通过 PyUIC 和 PyRCC 把 .ui 和 .qrc 转换成 .py 文件
在这里插入图片描述

新建 main.py 文件,代码如下

import sys
import testfrom PyQt5.QtWidgets import QApplication, QDialogif __name__ == '__main__':# 实例化,传参app = QApplication(sys.argv)# 创建对象dialog = QDialog()# 创建ui,引用 test 文件中的 Ui_Dialog 类ui = test.Ui_Dialog()# 调用 Ui_Dialog 类的 setupUi,创建初始组件ui.setupUi(dialog)# 创建窗口dialog.show()# 进入程序的主循环,并通过exit函数确保主循环安全结束(该释放资源的一定要释放)sys.exit(app.exec_())

在这里插入图片描述

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

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

相关文章

(JAVA)-(多线程)-线程池

线程池,顾名思义就是存放线程的池子,当有任务时能够随时取用线程,任务结束后能够放回线程池中。如果把线程比成碗,线程池就像一个碗柜一样。 使用线程池的好处: 1.当有大量线程对象时,减少了线程创建销毁…

获取拼多多商品详情页数据SKU价格等

拼多多根据ID取商品详情 API 返回值说明 item_get-根据ID取商品详情 pinduoduo.item_get 响应参数 请求测试链接 名称类型必须示例值描述 num_iid String01999629976商品ID title String02019新款女装短袖t恤女夏宽松韩版休闲上衣百搭蝙蝠衫五分袖体恤商品标题 price Flo…

Ubuntu安装K8S(1.28版本,基于containrd)

原文网址:Ubuntu安装K8S(1.28版本,基于containrd)-CSDN博客 简介 本文介绍Ubuntu安装K8S的方法。 官网文档:这里 1.安装K8S 1.让apt支持SSL传输 sudo apt-get update sudo apt-get -y install apt-transport-https ca-certi…

mysqlCPU超过100%的详细解决过程

前段时间我的一个网站经常打不开,通过检查发现服务器cpu占用超过100%,通过top命令发现是mysql占用cpu特别高导致的,下面这篇文章主要给大家介绍了关于mysql占用CPU超过100%的详细解决过程,需要的朋友可以参考下 一、使用top命令看到的情况如下: 可以看到服务器负载…

spring security oauth2搭建认证服务器

如图(上面图片的代码在业务项目中),第一步在独立的业务项目中,先获取授权码(也叫jsessionId)、获取授权码的路径就是 /oauth2/authorize,这个路径是oauth2的框架中被OAuth2AuthorizationEndpoin…

tcp 乱序度量与丢包标记

传统 tcp 以序列号差度量乱序,比如 1, 2, 3, 4, 6, 7, 8, 5 这个序列的 5 延后了 3 个段,就称这个序列的乱序度为 3。 如果乱序度为 m,则序列 n, n 1 k, n 1 k r, …, n 1 k r x 中,只要 (n 1 k r x) - (n 1) k …

vmware虚拟机中Nat、桥接模式和仅主机的差别

NAT 在NAT模式下,主机3是Kali和Win两个操作系统的宿主机,那么Kali和Win可以连接到外网,也可以和主机3进行互联,但是主机1和主机2不能连接到Kali和Win。 桥接 在桥接模式下,主机3是Kali和Win两个操作系统的宿主机&…

Javascript知识点锦集

【版权声明】未经博主同意,谢绝转载!(请尊重原创,博主保留追究权) https://blog.csdn.net/m0_69908381/article/details/135165704 出自【进步*于辰的博客】 文章目录 1、其他知识点链接7、关于 false8、关于 null 与 …

【开源学习】ThingsBoard -- 基本配置与使用

【开源学习】ThingsBoard -- 基本配置与使用 租户及客户管理租户及租户账号管理租户管理租户创建租户修改租户删除 租户账号管理租户账号创建租户账号修改租户账号删除 客户及客户账号管理客户管理客户创建客户修改客户删除 客户用户管理客户用户创建客户用户修改客户用户删除 …

WPF+Halcon 培训项目实战(6):目标匹配助手

文章目录 前言相关链接项目专栏模板匹配助手简单使用金字塔级别参数自动选择应用插入代码 总结 前言 为了更好地去学习WPFHalcon,我决定去报个班学一下。原因无非是想换个工作。相关的教学视频来源于下方的Up主的提供的教程。这里只做笔记分享,想要源码…

2236. 判断根结点是否等于子结点之和 23.12.28(一)

给你一个 二叉树 的根结点 root,该二叉树由恰好 3 个结点组成:根结点、左子结点和右子结点。 如果根结点值等于两个子结点值之和,返回 true ,否则返回 false 。 示例 1: 输入:root [10,4,6] 输出&#xf…

ssm基于JavaWeb的校园心理健康网站的设计与实现论文

摘 要 如今的时代,是有史以来最好的时代,随着计算机的发展到现在的移动终端的发展,国内目前信息技术已经在世界上遥遥领先,让人们感觉到处于信息大爆炸的社会。信息时代的信息处理肯定不能用之前的手工处理这样的解决方法&#x…

QT应用篇 二、QML用Image组件实现Progress Bar 的效果

QT应用篇 一、QT上位机串口编程 二、QML用Image组件实现Progress Bar 的效果 三、QML自定义显示SpinBox的加减按键图片及显示值效果 文章目录 QT应用篇前言一、qml需求二、使用组件1.Image组件2.Image中fillMode的使用例子 总结 前言 记录自己学习QML的一些小技巧方便日后查找…

openGauss学习笔记-176 openGauss 数据库运维-实例主备切换

文章目录 openGauss学习笔记-176 openGauss 数据库运维-实例主备切换176.1 操作场景176.2 操作步骤176.3 示例176.4 错误排查176.5 异常处理 openGauss学习笔记-176 openGauss 数据库运维-实例主备切换 176.1 操作场景 openGauss在运行过程中,数据库管理员可能需要…

Arduino stm32 USB CDC虚拟串口使用示例

Arduino stm32 USB CDC虚拟串口使用示例 📍相关篇《STM32F401RCT6基于Arduino框架点灯程序》🔖本开发环境基于VSCode PIO🌿验证芯片:STM32F401RC⌛USB CDC引脚: PA11、 PA12🔧platformio.ini配置信息&…

爬虫工作量由小到大的思维转变---<第三十三章 Scrapy Redis 23年8月5日后会遇到的bug)>

前言: 收到回复评论说,按照我之前文章写的: 爬虫工作量由小到大的思维转变---<第三十一章 Scrapy Redis 初启动/conn说明书)>-CSDN博客 在启动scrapy-redis后,往redis丢入url网址的时候遇到: TypeError: ExecutionEngine.crawl() got an unexpected …

归并算法:分治而治的高效算法大揭秘(图文详解)

🎬 鸽芷咕:个人主页 🔥 个人专栏: 《数据结构&算法》《粉丝福利》 ⛺️生活的理想,就是为了理想的生活! 📋 前言 归并算法是我们算法中最常见的算法之一,其思想非常巧妙。本身归并是只能归并有序数组…

Java企业电子招投标系统源代码,支持二次开发,采用Spring cloud框架

在数字化采购领域,企业需要一个高效、透明和规范的管理系统。通过采用Spring Cloud、Spring Boot2、Mybatis等先进技术,我们打造了全过程数字化采购管理平台。该平台具备内外协同的能力,通过待办消息、招标公告、中标公告和信息发布等功能模块…

C# WPF上位机开发(WebApi联调)

【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing 163.com】 很多时候,客户需要开发的不仅仅是一个上位机系统,它还有其他很多配套的系统或设备,比如物流小车、立库、数字孪…

助力城市部件[标石/电杆/光交箱/人井]精细化管理,基于YOLOv7【tiny/yolov7】开发构建生活场景下城市部件检测识别系统

井盖、店杆、光交箱、通信箱、标石等为城市中常见部件,在方便居民生活的同时,因为后期维护的不及时往往会出现一些“井盖吃人”、“线杆、电杆、线缆伤人”事件。造成这类问题的原因是客观的多方面的,这也是城市化进程不断发展进步的过程中难…