PyQt5保姆级入门教程——从安装到使用

news2024/9/28 7:20:48

目录

Part1:安装PyQt5

Part 2:PyCharm配置PyQt5

Part 3:PyQt5设计界面介绍

Part 4:PyQt5设计UI


今天看了多个大佬的教程,总算是把PyQt5开发弄好了,每个部分都要看几个人的十分不方便,我十分想要总结一下,所以在这里,你无需看其他的教程,从这就能完成它的安装到快速上手。

Part1:安装PyQt5

在虚拟环境当中安装,我选择的是我的工程文件夹下的,以便我随时进行界面的修改。

pip安装PyQt5

pip install PyQt5

pip安装pyqt5-tools

pip install pyqt5-tools

在这一步就完成了它的安装,你可以继续在cmd中输入

pip list

查看是否有这个安装包,接着打开搜索框,我的是win11系统,你也可以用win+s键打开。

输入  designer,点击红框即可打开

打开方式一

Part 2:PyCharm配置PyQt5

打开设置->工具->外部工具->添加文件(点击加号)

可以参照下面的内容按照要求输入,高级选项默认就好。QtDesigner的位置可以在收索框中右键选择文件所在位置找到,下面两个python的文件位置相同,就是你要安装PyQt5的位置,我的安装的位置是在虚拟环境当中。

名称:QtDesigner
工具设置
    程序:E:\Anaconda\anaconda3\Library\bin\designer.exe
    工作目录:$FileDir$
名称:PyUIC
工具设置
    程序:E:\Anaconda\anaconda3\envs\pytorch\python.exe
    实参:-m PyQt5.uic.pyuic  $FileName$ -o $FileNameWithoutExtension$.py
    工作目录:$FileDir$
名称:Pyrcc
工具设置
    程序:E:\Anaconda\anaconda3\envs\pytorch\python.exe
    实参:$FileName$ -o $FileNameWithoutExtension$_rc.py
    工作目录:$FileDir$

完成后在pycharm的上面导航栏中,按照下图所示,即可打开PyQt5设计。

打开方式二

至此,安装和配置结束,打开的方式也有两种可选。

Part 3:PyQt5设计界面介绍

首先,打开后会有这样一个界面,选择"Main Windows",点击创建,如果你不想每次打开都弹出这个窗口,取消勾选即可。

下面来介绍一下它的一个工作界面。

  • 位于左上方的“Widget Box”包含了各种可以自由拖动的组件;
  • 位于界面中央的“MainWindows - untitled”就是你可以设计的画布;
  • 位于右上方的“对象查看器”可以查看当前ui的结构;
  • 位于右侧中央的“属性编辑器”可以设置选中组件的属性;
  • 位于右下方的“资源浏览器”可以添加各种素材,比如像图片、背景等等。

当然对于这个也有汉化功能,而我的安装好后就是这样了(有部分中文),所以大家如果有需要可以看看其他教程,现在相信你应该清楚了各个模块部分作用,我们接下来将会设计你的第一个UI了。

Part 4:PyQt5设计UI

在左边的Wiget Box中找到“Push Button”、“Label”、“Text Browser”,通过双击即可修改名称,右边有属性可以修改。你觉得你做好后可以快捷键Ctrl+r,预览当前编写的GUI。

简简单单的设计一个,毕竟这是入门教程,后续我会将我的项目设计上传。

项目文件下我新生成了一个新建文件命名为PyQt5_demo,我们将文件保存在该文件夹下,下面会有一个.ui文件,如下所示:

左键untitled.ui文件,找到External Tools,点击PyUIC,同目录下就将.ui文件转换为了.py文件。

当然如果你运行这个代码,它是没有任何的问题,想要看见这个ui界面,还需要添加其他的东西,这里新建一个文件:run_untitled.py

import sys
import untitled

from PyQt5.QtWidgets import QApplication,QMainWindow

if __name__ == '__main__':
    # 实例化,传参
    app = QApplication(sys.argv)

    # 创建对象
    mainWindow = QMainWindow()

    # 创建ui,引用untitled文件中的Ui_MainWindow类
    ui = untitled.Ui_MainWindow()
    
    # 调用Ui_MainWindow类的setupUi,创建初始组件
    ui.setupUi(mainWindow)
    
    # 创建窗口
    mainWindow.show()
    
    # 进入程序的主循环,并通过exit函数确保主循环安全结束(该释放资源的一定要释放)
    sys.exit(app.exec_())

当然它只能表示一个展示的功能,那么后续的功能添加,我准备放在我的项目设计当中来写,希望这个教程能够给你带来帮助,不劳我辛苦一场(手动滑稽,呵呵)。

 

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

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

相关文章

YOLOv3简介

YOLOv3 预测部分 Darknet-53 YOLOv3的主干提取网络为Darknet-53,相比于YOLOv2时期的Darknet-19,其加深了网络层数且引入了Residual残差结构。其通过不断的1X1卷积和3X3卷积以及残差边的叠加,大幅度的加深了网络。残差网络的特点是容易优化&a…

【Unity VR开发】结合VRTK4.0:将浮点数从交互器传递到可交互对象

语录: 愿你熬得过万丈孤独,藏得下星辰大海。 前言: 默认情况下,交互器只能将单个布尔操作传递给可交互对象,后者控制可交互对象上的抓取操作。在其他时候,交互器中的其他操作可能希望传递给可交互对象&…

leaflet 设置marker,并可以任意拖动每一个marker(071)

第071个 点击查看专栏目录 本示例的目的是介绍演示如何在vue+leaflet中通过L.marker来添加marker,通过设置其属性,可以让marker在地图上任意的拖动。 直接复制下面的 vue+leaflet源代码,操作2分钟即可运行实现效果 文章目录 示例效果配置方式示例源代码(共76行)相关API参…

实体店店铺管理软件怎么挑?看了排名就知道!

很多实体店店主在选择店铺管理软件时,不知道怎么选择,其实这个不难。一般根据市场上的排名也选择就ok了,因为一款被大家都认证过好用的软件,怎么都比盲选的或者名不见经传的软件好。选择一款适合的实体店店铺管理软件可以省很多事。而截止现在管理软件排…

linux将新加磁盘绑挂载到指定目录

查看当前挂载情况df -l此时可以看到sda和sdb两块磁盘已经被挂载,但实际上还有更多块磁盘未被挂载(磁盘名称sda,结尾字母安顺递增)查看一安装的所有磁盘fdisk -l此时我们可以看到还有很多未进行分区磁盘为磁盘添加分区fdisk /dev/s…

【另辟蹊径】Table 单元格内容过多之省略展示方案,设置Element table的 showOverflowTooltip 属性无效后的替代方案

一、问题背景 设置了element table的组件 <el-table-column>属性showOverflowTooltip无效&#xff0c;如图所示。 PS&#xff1a;注意不是不起作用&#xff0c;是有作用但是内容过多展示占据了整个界面&#xff0c;影响美观和用户体验。 有的博主解决方法是全局样式文件…

一眼万年的 Keychron 无线机械键盘

一眼万年的 Keychron 无线机械键盘 一款好的键盘对于程序员或者喜欢码字的人来说是非常重要的&#xff0c;而最近博主入手了自己的第一款机械键盘——Keychron 无线机械键盘。 机械键盘特点 有独立轴体&#xff0c;通过两个簧接触&#xff0c;来触发信号&#xff0c;价格相对贵…

大文件上传如何做断点续传?

一、是什么 不管怎样简单的需求&#xff0c;在量级达到一定层次时&#xff0c;都会变得异常复杂 文件上传简单&#xff0c;文件变大就复杂 上传大文件时&#xff0c;以下几个变量会影响我们的用户体验 服务器处理数据的能力请求超时 网络波动 上传时间会变长&#xff0c;高…

缓存穿透-总结

目录 缓存穿透-总结 出现场景&#xff1a; 解决方法&#xff1a; 方法1.缓存空对象&#xff1a; 方法2.加一个布隆过滤器&#xff1a; 总结&#xff1a; 缓存穿透-总结 出现场景&#xff1a; 缓存穿透是指客户端请求的数据在缓存中和数据库中都不存在&#xff0c;这样缓…

光量子领域新突破:有望打造芯片工厂!

将2D材料与氮化硅谐振器混合集成&#xff0c;使一系列单光子源与硅基光子按需精准结合。&#xff08;图片来源&#xff1a;网络&#xff09;量子光子学的著名专家、电气和计算机工程助理教授Galan Moody的实验室成功创造了一种在芯片上产生单光子的新方法。量子具有叠加态的特性…

飞桨特色产业级模型库,助力AI开发与落地更简单!

飞桨在长期的产业实践中发现&#xff0c;开发者使用开源模型项目落地普遍会遇到三大难题&#xff1a; 算法和模型繁多&#xff0c;做模型选择是个难题&#xff1b; 模型效果不错&#xff0c;但产业落地时容易遇到资源限制和部署的问题&#xff1b; 面对新场景无从下手&#x…

minio public桶禁止在直接访问桶位置时列出所有文件url

minio的public桶因为没有限制&#xff0c;所以在直接访问到桶地址的时候会列出桶内所有文件的url&#xff0c;这样很不安全&#xff0c;如何禁止这个功能&#xff0c;可以使用三种方法 1、如果是新版的可以直接设置桶的Access Policy为自定义就好 编辑custom的Policy&#xff…

五种情况下企业需要引进低代码开发平台

随着低代码开发平台的热度在上升&#xff0c;企业中也开始流行一种新的应用交付方式&#xff1a;业务部门基于低代码开发平台将所需要的功能&#xff08;或简单的可用版本&#xff09;自行搭建出来&#xff0c;当遇到较为复杂的需求时&#xff0c;则向IT部门请求支援。业务与IT…

【MFC】模拟采集系统——数据绘制(19)

完成界面设计后&#xff0c;数据绘制也可以按照对MFC类派生来完成&#xff0c;值得注意的是这里的数据绘制仅仅是通过随机产生的数据来显示&#xff0c;并且显示的方法也有很多。 数据绘制 在主对话框中添加两个 Picture Control 位置大小任意&#xff0c;可以设置一下外观&a…

Python3 数据结构实例及演示

本章节主要结合前面所学的知识点来介绍Python数据结构。 列表 Python中列表是可变的&#xff0c;这是它区别于字符串和元组的最重要的特点&#xff0c;1句话概括即&#xff1a;列表可以修改&#xff0c;而字符串和元组不能。 以下是 Python 中列表的方法&#xff1a; 下面示…

阿里云服务器部署前后端分离项目

阿里云服务器部署 【若依】 前后端分离项目 文章目录一、域名解析二、服务器操作系统置空三、部署方式四、需安装环境配置五、Linux服务器安装相应内容&#xff08;具体安装步骤&#xff09;&#xff08;一&#xff09;安装JDK&#xff08;3种方式&#xff09;使用Yum安装&…

Assignment写作各个部分怎么衔接完美?

Assignment格式很简单&#xff0c;就只有四个部分&#xff0c;按着通用的套路来&#xff0c;发现也没什么难度。不过这4个部分自己需要衔接完美&#xff0c;下面就给大家分享一下写Assignment最简单的方法。 如果没有目录可以放在第一页的开头&#xff0c;用“标题字体”加重显…

互联网大厂Java岗最全八股文面试1100道真题汇总,堪称2023年面试天花板

2023 年的互联网行业竞争越来越严峻&#xff0c;面试也是越来越难&#xff0c;一直以来我都想整理一套完美的面试宝典&#xff0c;奈何难抽出时间&#xff0c;这套 1100道的 Java 面试手册是行业内各大神联合总结出来的&#xff0c;上传到 Git 上目前 star 数达到了 30K 这套互…

POE指数积公式的简单matlab实现

参考现代机器人学 及机器人工程师进阶之路&#xff08;八&#xff09;指数积&#xff08;PoE&#xff09;建立机械臂模型及正运动 1.使用Robotics在matlab中建立一个简单的机械臂&#xff0c;方便验证后面的代码写的对不对 %Robotics 工具箱介绍&#xff1a; https://blog.csd…

【使用secureCRT管理Linux系统】

使用secureCRT管理Linux系统 进入secureCRT快速连接虚拟机 默认是SSH2类型&#xff0c;红线是虚拟机的ip地址&#xff0c;绿线是虚拟机的用户名称 如果之后的页面出现了需要输入用户密码&#xff0c;那就是成功了&#xff0c;如果出现了Connection timed out 可能原因是电脑…