【PyQt5】python可视化开发:PyQt5介绍,开发环境搭建快速入门

news2025/2/27 17:34:05

在这里插入图片描述

✨✨ 欢迎大家来到景天科技苑✨✨

🎈🎈 养成好习惯,先赞后看哦~🎈🎈

🏆 作者简介:景天科技苑
🏆《头衔》:大厂架构师,华为云开发者社区专家博主,阿里云开发者社区专家博主,CSDN全栈领域优质创作者,掘金优秀博主,51CTO博客专家等。
🏆《博客》:Python全栈,前后端开发,小程序开发,云原生K8S,人工智能,js逆向,App逆向,网络系统安全,数据分析,PyQt5,tkinter,Django,fastapi,flask等框架,linux,shell脚本等实操经验,网站搭建,数据库等分享。

所属的专栏:PyQt5桌面应用开发,零基础到进阶应用实战
景天的主页:景天科技苑

文章目录

  • PyQt框架简介
    • PyQt5特点
    • Qt与PyQt的关系
  • PyQt5环境搭建
    • PyQt5安装
    • 辅助工具安装
    • PyQt5Designer
    • 总结和联系
  • PyQt5应该学哪些内容

Python可以说是世界上最广泛、最简单的编程语言之一,Qt可以说是世界上最好的程序开发库之一。
Python与Qt结合的产物就是PyQt,因此,PyQt就成了Python中程序开发最棒的库之一(当然,笔者认为它在Python程序开发中就是最棒的)。
由于PyQt是Python与Qt的结合,所以它既可以利用Python强大而又简洁的语法,又不会丢失Qt强大的功能。
从Python的角度来说,凡是Python涉及的所有简洁、易用性的语法,PyQt都可以使用;凡是Python涉及的所有开源模块,PyQt也都可以使用。
从Qt的角度来说,由于PyQt完成了对Qt的所有类的封装,因此,从理论上说,使用Qt能开发出来的东西,使用PyQt也可以开发出来,
因此,PyQt可以利用Qt强大的功能。
由于充分利用了双方的优点,所以PyQt在开发程序的过程中会带来一些意想不到的收获,
利用Python的简洁语法与强大而又丰富的生态圈,有些程序逻辑在Qt中实现会比较复杂,而在PyQt中却很简单,这才是PyQt最大的魅力
之处。

PyQt框架简介

在目前的软件设计过程中,图形用户界面(GUI)的设计相当重要,美观、易用的用户界面能够在很大程度上提高软件的使用量,因此许多软件都在用户界面上倾注了大量的精力。
在介绍PyQt框架之前,我们先来了解什么是图形用户界面(GUI)。

百度百科:GUI词条
GUI是Graphical User Interface的英文简称,即图形用户界面,准确地说,GUI就是屏幕产品的视觉体验和互动操作部分。
GUI是一种结合计算机科学、美学、心理学、行为学及各商业领域需求分析的人机系统工程,强调人—机—环境三者作为一个系统进行总体设计。

Python最初是作为一门脚本语言开发的,并不具备GUI功能,但由于其本身具有良好的可扩展性,能够不断地通过C/C++模块进行功能性扩展,因此目前已经有相当多的GUI控件集(Toolkit)可以在Python中使用了。
在Python中经常使用的GUI控件集有PyQt、Tkinter、wxPython、Kivy、PyGUI和Libavg,其中PyQt是Qt为Python专门提供的GUI扩展。

Qt是挪威Trolltech(奇趣科技公司)开发的一个C++GUI应用程序,其包括跨平台类库、集成开发工具和跨平台IDE,既可以用于开发GUI程序,也可以用于开发非GUI程序。
使用Qt只需开发一次应用程序,便可跨不同桌面和嵌入式操作系统部署该应用程序,而无须重新编写源代码。
和Python一样,Qt也具有相当优秀的跨平台特性,使用Qt开发的应用程序能够在Windows、Linux和Mac OS平台之间轻松移植。
2008年6月,Trolltech被Nokia(诺基亚)收购,Qt也因此成为诺基亚旗下的编程语言工具;
2012年8月,Qt业务又被芬兰IT业务供应商Digia从诺基亚手中全面收购。
现在的Qt既有开源版本,也有商业版本,Digia通过开源授权(LGPL和GPL)以及商业授权的方式对Qt进行授权。
开源软件需要解决的最大问题是如何处理开发者使用开源软件来完成个人或商业目标的情况,其中包括版权与收益的问题。
当一个软件开发者打算将自己写的代码开源时,通常选择自由软件协议,即GPL(GNU General Public License,GNU通用公共许可证)。
因此,PyQt 5选择了GPL协议,所以开发者可以放心使用PyQt 5开发软件。

PyQt5特点

自从Qt移植到Python上形成PyQt框架以来,已开发出PyQt 3、PyQt 4和PyQt5三个版本。PyQt于1998年首次发布,当时名字叫PyKDE,如今改名为PyQt并提供GPL版和商业版。

注意:
PyQt5严格遵循Qt的发布许可,拥有双重协议,自由开发者可以选择使用免费的GPL版本,如果准备将PyQt用于商业活动,则必须为此交付商业许可费用。

最后,让我们来看看Qt官网(https://www.qt.io/cn/)上的官方宣传壁纸,如图所示,答案就在其中。
在这里插入图片描述

pyqt官网
https://www.riverbankcomputing.com/software/pyqt/intro
在这里插入图片描述

PyQt正受到越来越多的Python程序员的喜爱,这是因为PyQt具有如下优秀的特性。
基于高性能的Qt的GUI控件集。
能够跨平台运行在Windows、Linux和Mac OS等系统上。
使用信号/槽(signal/slot)机制进行通信。
对Qt库的完全封装。
可以使用Qt成熟的IDE(如Qt Designer)进行图形界面设计,并自动生成可执行的Python代码。
提供了一整套种类繁多的窗口控件。

Qt与PyQt的关系

首先,PyQt是Qt框架的Python语言实现。PyQt提供了一个设计良好的窗口控件集合,每一个PyQt控件都有其对应的Qt控件。
所以PyQt与Qt的类库和API非常详细,而且PyQt不再使用qmake系统和Q_OBJECT宏,使得PyQt再也没有编译链接错误,PyQt的代码也更加友好。

其次,在开发速度上,由于PyQt的核心就是Qt库,也是用C++编写的,所以即使逻辑代码运行速度慢一点,也不会成为性能瓶颈。
在使用方式上,PyQt也没有失去Python的优雅语法、快速开发的能力。
Python相对于C++的优点是在编程效率上,可以看到标准的Qt例子移植到PyQt后的代码具有相同的功能,使用相同的应用程序接口,Python版本的代码只有原来的50%~60%,而且更容易阅读。
在开发效率上,由于Python是一种面向对象的语言,语法简单、高效,相对于C++而言,使用Python编写程序可以提高开发效率,减少开发成本。

最后,PyQt向Python程序员提供了使用完整的Qt应用程序接口的函数,几乎可以用Python做任何Qt能做的事。
Qt和PyQt的设计都是完全面向对象的。Qt使用一种称为信号/槽的机制在窗口控件之间传递事件和消息。
这种机制完全不同于其他图形界面开发库所采用的回调(callback)机制,使用信号/槽可以使程序更加安全和简洁。
所开发的应用程序越大,Qt/PyQt的这个优势就越明显。

PyQt5环境搭建

本节讲解如何在最常见的PC操作系统平台上配置PyQt 5开发环境,包括搭建Python 3解释器环境和编程库等。
目前pyqt5最新的版本是5.15.10 支持python最高的版本是python3.9 所以要使用pyqt5,最高python版本不能超过3.9
首先,我们在pycharm中创建个基于python3.9虚拟环境的项目
在这里插入图片描述

PyQt5安装

PyQt5 是一个Python库,它是Qt库的Python绑定。Qt是一个广泛使用的C++框架,用于开发跨平台的应用程序。PyQt5提供了一整套丰富的功能和部件,使得开发复杂的GUI应用程序变得相对简单。
功能:
提供了用于创建桌面应用程序的工具和部件。
支持窗口、小部件、事件处理、图形视图等。
支持国际化、线程、数据库等功能。

安装:

pip install PyQt5

辅助工具安装

pyqt5-tools 是一个辅助工具包,包含了一些额外的工具,用于简化使用PyQt5开发应用程序的过程。它包括了一些用于开发和调试PyQt5应用程序的实用工具,比如Qt Designer、Qt Linguist等。
功能:
提供了Qt Designer工具,可以用来设计GUI界面并生成相应的Python代码。
包含一些开发过程中有用的命令行工具和脚本。

安装:

pip install PyQt5-tools

使用: 安装后,pyqt5-tools 包含的工具(如Qt Designer)可以通过命令行启动。例如

pyqt5-tools designer

注意,pyqt5和pyqt5-tools 版本要一致,PyQt5-tools目前最新版本是5.15.9。我之前安装了pyqt5.15.10,此时程序自动卸载了pyqt5.15.10。重新安装了pyqt5.15.9

PyQt5Designer

PyQt5Designer 通常是指Qt Designer,这是一个图形化的工具,用于设计和布局应用程序的用户界面。虽然PyQt5本身不包含Qt Designer,但安装pyqt5-tools后可以使用Qt Designer。
功能:
提供拖放式界面设计,生成.ui文件。
支持添加窗口、小部件、布局管理等。
可以通过pyuic5工具将.ui文件转换为Python代码。
使用: 在安装pyqt5-tools之后,可以通过命令启动Qt Designer:
pyqt5-tools designer

总结和联系

PyQt5 是核心库,提供了Qt框架的Python绑定,用于开发GUI应用程序。
pyqt5-tools 是一个辅助工具包,包含了一些开发工具(如Qt Designer),帮助开发者更方便地设计和调试PyQt5应用程序。
PyQt5Designer 是指Qt Designer工具,它是一个图形界面设计器,可以通过pyqt5-tools安装和使用。

安装完成后,测试下是否安装成功
我们创建个py文件
尝试导入包PyQt5,查看是否有问题

from PyQt5.Qt import *

运行没报错,表示环境搭建成功
在这里插入图片描述

PyQt5应该学哪些内容

1.了解你所选择的pyqt5库
2.基本程序结构–跑通GUI程序,能够看到一个界面
3.掌握各种控件的特性和使用

  • 能够知道每个控件都有什么作用,能解决什么需求
  • 知道该怎样去使用这个控件

4.掌握控件的样式使用

  • 怎样能把控件的样式搞的好看一点,比如颜色,边框等等

5.资源的加载

  • 怎样加载资源,展示在GUI控件中

6.控件的布局

  • 怎样把各个单独的控件摆放的更协调,更美观

7.事件和信号

  • 怎样能够让用户点击或者做其他交互操作的时候,我们能让程序做事情

8.动画特效

  • 怎样能够在与用户交互的时候,展示炫酷的动画

9.界面跳转

  • 从一个窗口,跳转到另外一个窗口

10.设计工具使用

  • 通过辅助工具来设计界面

11.额外

  网络
  多线程
  数据库
  文件操作
  绘图
  多媒体
  定时器
  定位
  国际化
  ...

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

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

相关文章

技术人的业务爱好:第一件手工-官帽椅

榫卯是古典家具的主要结构方式,是两个构件上采用凹凸部位相结合的一种连接方式,其中,凸出部分叫榫(或叫榫头),凹进部分叫卯(或叫榫眼、榫槽)。 一榫一卯之间,一转一折之…

.net 奇葩问题调试经历之1——在红外相机获取温度时异常

📢欢迎点赞 :👍 收藏 ⭐留言 📝 如有错误敬请指正,赐人玫瑰,手留余香!📢本文作者:由webmote 原创📢作者格言:新的征程,我们面对的不仅仅是技术还有人心,人心不可测,海水不可量,唯有技术,才是深沉黑夜中的一座闪烁的灯塔序言 我们在研发中,经常除了造产品…

深度学习增强的非线性光纤单像素成像系统

1、光子器件的逆向设计:通过机器学习,特别是深度学习,可以高效地进行光子器件的逆向设计,这在传统的多参数优化问题中尤为重要。 2、超构表面和超材料设计:机器学习被用于设计具有特定光学特性的超构表面和超材料&…

管道保温的介绍

通风空调管道及各种水管的保温材料主要有:聚氨酯泡沫塑料保温、高级橡塑保温、酚醛泡沫塑料保温等。现对以上材料的特性、适用范围、施工要点等进行介绍,以供各位借鉴。 01 常用的绝热材料 1、聚氨酯泡沫塑料保温 该材料用于直埋管段的保温。在工程中…

目标检测讲解

环境准备 pip install scikit-image -i https://pypi.tuna.tsinghua.edu.cn/simple图片读取&画框 from skimage import io import matplotlib.pyplot as plt import matplotlib.patches as mpss io.imread(dogs.jpg)_, ax plt.subplots(ncols1, nrows1, figsize(6, 6))…

[第五名公共排行榜] LGB 连续学习 + Catboost 集成

大家好, 首先,我想感谢竞赛组织者和所有参与讨论的人。这是@ibazhov和我在Kaggle上的第一次正式比赛,我们学到了很多,并希望未来能参与更多的比赛。 总结: 使用5个LGB模型进行连续更新/学习,通过.train(init_model)和.refit()方法,以及5个基于216个特征的Catboost模型…

装备制造行业数据分析指标体系

数字化飞速发展的时代,多品种、定制化的产品需求、越来越短的产品生命周期、完善的售后服务、极佳的客户体验和快速的交货速度等,使得装备制造行业的经营环境越来越复杂,企业竞争从拼产品、拼价格迈向拼服务,装备制造企业正处于数…

javaSE:继承

在谈继承之前,我们先观察下面这个代码: //定义一个猫类 class Cat {public String name;public int age;public float weigth;public void eat(){System.out.println(this.name"正在吃饭");}public void mimi(){System.out.println(this.nam…

校园环境气象实时监测系统

随着物联网技术的发展越来越成熟,它不断地与人们的日常生活和工作深入融合,推动着社会的进步。其中物联网系统集成在高校实践课程中可以应用到许多项目,如环境气象检测、花卉种植信息化监管、水质信息化监管、校园设施物联网信息化改造、停车…

经常混淆的ADC输入类型!

大家好,这里是大话硬件。 这篇文章我们来聊聊ADC的输入类型。 ADC的输入类型根据ADI的官网,分为了3种类型,单端,差分,伪差分。如下图快速选型的界面所示。 同时,TI的官网对ADC的输入类型划分也是同样的3种类型。 可见,两个器件厂家对ADC的输入类型都是这样定义的。 …

FPGA早鸟课程第二弹 | Vivado 设计静态时序分析和实际约束

在FPGA设计领域,时序约束和静态时序分析是提升系统性能和稳定性的关键。社区推出的「Vivado 设计静态时序分析和实际约束」课程,旨在帮助工程师们掌握先进的设计技术,优化设计流程,提高开发效率。 课程介绍 关于课程 权威认证&…

目标检测——YOLOv10算法解读

论文:YOLOv10: Real-Time End-to-End Object Detection (2024.5.23) 作者:Ao Wang, Hui Chen, Lihao Liu, Kai Chen, Zijia Lin, Jungong Han, Guiguang Ding 链接:https://arxiv.org/abs/2405.14458 代码:https://github.com/THU…

Kimichat使用案例019:15个Kimichat提示词案例

文章目录 一、扮演招聘经理二、扮演英语教师三、文章修改润色四、模仿特定作者写文章五、扮演任何一个角色六、像董宇辉一样介绍一本书七、写商业计划书的大纲八、头脑风暴九、总结文章十、推荐书籍十一、写电子邮件十二、学习Python编程十三、Python编程十四、制作菜谱十五、写…

【Python/Pytorch 】-- 滑动窗口算法

文章目录 文章目录 00 写在前面01 基于Python版本的滑动窗口代码02 算法效果 00 写在前面 写这个算法原因是:训练了一个时序网络,该网络模型的时序维度为32,而测试数据的时序维度为90。因此需要采用滑动窗口的方法,生成一系列32…

一种稀疏贝叶斯学习的旋转机械故障诊断方法(MATLAB)

轴承的故障诊断技术是通过检测轴承故障特征信息来判断轴承的具体故障为位置或损伤程度。在轴承发生损坏时,故障特征信息会随着工作时间的增长变得明显。轴承的损坏过程可以分为四个阶段。第一个阶段为损伤初始阶段,轴承故障特征信号一般无法测量。第二个…

一种基于非线性滤波过程的旋转机械故障诊断方法(MATLAB)

在众多的旋转机械故障诊断方法中,包络分析,又称为共振解调技术,是目前应用最为成功的方法之一。首先,对激励引起的共振频带进行带通滤波,然后对滤波信号进行包络谱分析,通过识别包络谱中的故障相关的特征频…

【昇思25天学习打卡营打卡指南-第一天】基本介绍与快速入门

昇思MindSpore介绍 昇思MindSpore是一个全场景深度学习框架,旨在实现易开发、高效执行、全场景统一部署三大目标。 其中,易开发表现为API友好、调试难度低;高效执行包括计算效率、数据预处理效率和分布式训练效率;全场景则指框架…

【windows|004】BIOS 介绍及不同品牌电脑和服务器进入BIOS设置的方法

🍁博主简介: 🏅云计算领域优质创作者 🏅2022年CSDN新星计划python赛道第一名 🏅2022年CSDN原力计划优质作者 ​ 🏅阿里云ACE认证高级工程师 ​ 🏅阿里云开发者社区专家博主 💊交流社…

使用 CloudFlare 的站长们注意了

最近 CloudFlare 改版升级比较频繁,除了 CloudFlare 后台布局有多处调整外,还包括部分模块弃用的调整,所以明月建议在使用 CloudFlare 的站长们及时跟进调整设置,否则可能会影响网站的加速和安全防护能力的,严重点儿甚至会造成部分网站功能性错误影响用户体验。 尤其要重视…

Java面试八股之myBatis的优缺点

myBatis的优缺点 优点: 灵活性高: MyBatis允许直接编写原生SQL语句,这意味着你可以针对特定的数据库特性进行优化,处理复杂的查询逻辑,从而更好地满足业务需求。 易于上手: 相比Hibernate等其他ORM工具&…