安装 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, QLabel

if __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 test

from PyQt5.QtWidgets import QApplication, QDialog

if __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://www.mfbz.cn/a/277374.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

RabbitMQ是做什么的

rabbitMQ是做异步通讯的。用于解决同步同讯的拓展性差,级联失败的问题。 异步调用方式其实就是基于消息通知的方式,一般包含三个角色:。 消息发送者:投递消息的人,就是原来的调用方 消息代理:管理、暂存、转发消息,你可以把它理…

第 1 场 算法季度赛 蓝桥搜狐畅游(1~5 , 7)

1、水题 2、树上dp 3、模拟 4、概率 5、拆位 6、&#xff08;是没学过的东西了...&#xff09; 7、组合数学 1. 新年快乐【算法赛】 直接模拟 #include <iostream> using namespace std; int main() {cout <<"2024 AK";return 0; } 2. 蓝桥圣诞树…

VS2019 驱动两个函数地址相同?

VS2019对于两个函数名不同&#xff0c;但是函数代码实现相同的情况&#xff0c;在链接时会将两个函数合并为同一个代码段&#xff0c;导致两个函数的地址相等。代码如下&#xff1a; #include <wdm.h>static void InnerFunc(int i, const char* name) {DbgPrint("i…

C语言字符串知识点和算法总结

目录 一、字符串遍历 1、字符串和字符数组 2、获取字符串长度 3、字符串遍历 4、大小写转换 5、字符串数组 二、字符串拷贝 三、字符串比较 四、字符串分割 五、字符串翻转 1、题目详解 2、算法详解 3、源码剖析 六、回文串 1、定义 2、例题讲解 3、算法详解 …

数据库进阶教学——读写分离(Mycat1.6+Ubuntu22.04主+Win10从)

目录 1、概述 2、环境准备 3、读写分离实验 3.1、安装jdk 3.2、安装Mycat 3.3、配置Mycat 3.3.1、配置schema.xml ​​​​3.3.2、配置server.xml 3.4、修改主从机远程登陆权限 3.4.1、主机 3.4.2、从机 3.5、启动Mycat 3.6、登录Mycat 3.7、验证 1、概述 读写分…

Linux自定义shell编写

Linux自定义shell编写 一.最终版本展示1.动图展示2.代码展示 二.具体步骤1.打印提示符2.解析命令行3.分析是否是内建命令1.shell对于内建名令的处理2.cd命令3.cd函数的实现4.echo命令的实现5.export命令的实现6.内建命令函数的实现 4.创建子进程通过程序替换执行命令5.循环往复…

在markdown中添加视频的两种方法

查看专栏目录 Network 灰鸽宝典专栏主要关注服务器的配置&#xff0c;前后端开发环境的配置&#xff0c;编辑器的配置&#xff0c;网络服务的配置&#xff0c;网络命令的应用与配置&#xff0c;windows常见问题的解决等。 文章目录 方式一源代码: 方式二结尾语网络的梦想 markd…

UniApp小程序使用vant引入vant weapp

HBuilder X里新建项目指路 HBuilderX新建项目 安装node.js指路 安装node.js 1.通过npm安装 查看npm环境 //打开终端输入命令查看版本 npm -version 1.1.右键打开外部终端窗口 1.2.输入npm init -y命令 1.3.通过命令安装 npm i vant/weapp1.3.3 -S --production 1.4.打开工具…

2024年汉字小达人比赛的几个常见问题,往届真题示例和备赛建议

这一届家长真是拼&#xff01;也很让人佩服。 2023年汉字小达人市级比赛的结果出来还没多久&#xff0c;就开始谋划着为孩子准备2024年的汉字小达人比赛。可以预料&#xff0c;类似于汉字小达人这样的比赛活动竞争会越来越激烈&#xff0c;毕竟&#xff0c;大家都希望孩子积累…

年终回顾与展望:CSDN成就之路,2023年AI浪潮展望及2024 Flag

文章目录 2023年在CSDN获得的肯定1&#xff0c;入围2023博客之星2&#xff0c;《有哪些让你目瞪口呆的Bug&#xff1f;》征文获得TOP33&#xff0c;通过创作者身份认证4&#xff0c;多篇文章被城市开发者社区收录5&#xff0c;多篇文章进入全站综合热榜6&#xff0c;积极参与社…

数据结构-八大排序详解(动图+实现详解+总结)

1 前言 本章主要讲解&#xff1a; 八大排序的基本知识及其实现 注&#xff1a;这里的八大排序指直接插入&#xff0c;希尔&#xff0c;选择&#xff0c;堆排&#xff0c;冒泡&#xff0c;快排&#xff0c;归并&#xff0c;基数 八大排序汇总图&#xff1a; 2 排序概念及应用 …

计算机毕业设计选题分享-ssm智能停车场系统小程序67860(赠送源码数据库)JAVA、PHP,node.js,C++、python,大屏数据可视化等

ssm智能停车场系统小程序 摘 要 科技进步的飞速发展引起人们日常生活的巨大变化&#xff0c;电子信息技术的飞速发展使得电子信息技术的各个领域的应用水平得到普及和应用。信息时代的到来已成为不可阻挡的时尚潮流&#xff0c;人类发展的历史正进入一个新时代。在现实运用中&a…

计算机图形学光线追踪大作业C++基于Optix为框架实现的光线追踪算法合集,含直射光阴影效果、漫反射阴影效果、镜面反射效果等示例

MineRay 使用Optix为框架实现的光线追踪算法。 包含4个示例&#xff0c;直射光阴影效果、漫反射阴影效果、镜面反射效果、折射效果 环境需求 本项目在Windows 10中测试&#xff0c;以下环境为Windows中的环境 CUDA 10.1 OptiX 7 SDK cmake 编译方式 使用cmake编译 打开Mi…

certum的ip证书购买流程

Certum是成立于欧洲的CA认证机构&#xff0c;经过二十几年的发展Certum已经成为欧洲知名的CA认证机构之一&#xff0c;拥有广泛的客户群体和合作伙伴。IP证书是Certum为只有公网IP地址的网站准备的数字加密服务。今天就随SSL盾小编了解购买Certum旗下的IP证书流程。 第一步&am…

Vue3-31-路由-RouterView的name属性的作用

作用描述 <router-view> 标签是用来渲染路由对应的组件的位置&#xff1b; 默认情况下&#xff0c;一个路由是只对应一个组件的。 但是&#xff0c;可以通过给 <router-view> 指定 name 属性的方式&#xff0c;实现同时渲染多个组件的效果。 这也叫做 命名视图。 注…

鸿蒙开发之崩溃信息收集FaultLogger

前申&#xff1a;果然系统的API没有让我失望&#xff0c;日志完全看不出来崩溃原因所在 一、使用 logCrash() {FaultLogger.query(FaultLogger.FaultType.JS_CRASH,(err,val) > {if (err) {console.log(fault log get an errJSON.stringify(err))return}let len val.lengt…

隧道代理HTTP工作原理:一场奇妙的网络魔法表演

嘿&#xff0c;小伙伴们&#xff01;今天我们要一起探索一个有趣的话题——隧道代理HTTP的工作原理。这不是普通的表演&#xff0c;而是一场奇妙的网络魔法表演&#xff01; 首先&#xff0c;让我们想象一下&#xff0c;网络世界就像一个大舞台&#xff0c;而我们每个人都是这…

1 - 数据库服务概述 | 构建MySQL服务 | 数据库基本管理 | MySQL基本类型

数据库服务概述 | 构建MySQL服务 | 数据库基本管理 | MySQL基本类型 数据库服务概述构建mysql服务安装mysql软件包连接mysql服务器 修改密码 密码管理修改密码策略&#xff08;需要登陆&#xff09;破解数据库管理员root密码&#xff08;数据库服务处于运行状态但是root忘记了密…

C++ 侯捷 内存管理

C 的内存获取机制&#xff1a; void* p1 malloc(512); free(p1);complex<int>* p2 new complex<int>; delete p2;void* p3 ::operator new(512); ::operator delete(p3);//GNUC void* p4 alloc::allocate(512); alloc::deallocate(p4, 512);//GNUC4.9 void* p5…

【经验分享】日常开发中的故障排查经验分享(一)

目录 简介CPU飙高问题1、使用JVM命令排查CPU飙升100%问题2、使用Arthas的方式定位CPU飙升问题3、Java项目导致CPU飙升的原因有哪些&#xff1f;如何解决&#xff1f; OOM问题&#xff08;内存溢出&#xff09;1、如何定位OOM问题&#xff1f;2、OOM问题产生原因 死锁问题的定位…