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

在这里插入图片描述

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

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

🏆 作者简介:景天科技苑
🏆《头衔》:大厂架构师,华为云开发者社区专家博主,阿里云开发者社区专家博主,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.mzph.cn/web/32530.shtml

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

相关文章

IDEA 中 Maven 报错 Cannot resolve xxx(全网试完,亲测有效的方法汇总)

问题: pom中已经添加相关依赖,maven刷新也没有用,依旧是疯狂报错。 可能原因: 在IDEA中的pom文件中添加了依赖,并且正确加载了相应依赖,pom文件没有报红,看起来像是把所有依赖库全部加载进来了&…

csp 2023 入门级题解(上)

csp 2023 入门级题解 上 第一题第二题第三题结构体联合体 第四题第五题第六题第7题第八题 第一题 unsigned是指无符号,用于int类型,是指自然数. const是定义常量,定义后的值不可修改. static是将系统栈中的变量放入内存,可以让其他程序调用 答案是c 第二题 答案d 第三题 s…

基于YOLOv5的PCB板缺陷检测系统的设计与实现

简介 随着电子设备的广泛应用,PCB(印刷电路板)作为其核心部件,其质量和可靠性至关重要。然而,PCB生产过程中常常会出现各种缺陷,如鼠咬伤、开路、短路、杂散、伪铜等。这些缺陷可能导致设备故障,甚至引发严重的安全问题。为了提高PCB检测的效率和准确性,我们基于YOLOv…

数组移除元素算法(以JS为例)

题目:LeeCode第27题 答案: 算法思想:双指针 这段代码实际上使用了一种简化版的双指针技术来实现元素的移除。这里的双指针技术并不是传统意义上的两个指针,而是一个索引k作为辅助指针,用来记录新数组(或原…

Android 开发必备知识点及面试题汇总(Android+Java+算法+性能优化+四大组件……

**虚引用:**顾名思义,就是形同虚设,如果一个对象仅持有虚引用,那么它相当于没有引用,在任何时候都可能被垃圾回收器回收。 7.介绍垃圾回收机制 **标记回收法:**遍历对象图并且记录可到达的对象&#xff0c…

Jenkins定时构建自动化(一):Jenkins下载安装配置

目录 ​编辑 一、jdk下载安装 1. 已下载安装jdk 2. 未下载安装jdk 二、jenkins安装 1. .war包安装 三、获取IP地址 四、jenkins网页配置 一、jdk下载安装 1. 已下载安装jdk (1)查询jdk版本命令:java -version (2)…

idea2022激活

下载激活脚本 解压后,打开文件夹如下:ja-netfilter.jar 为激活补丁: 复制补丁所在的整个文件夹到硬盘某个位置 将 ja-netfilter补丁所在的整个文件夹移动到电脑上某个位置,我是放到了 D 盘下: (路径中不…

Java面试题:内存管理、类加载机制、对象生命周期及性能优化

1. 说一下 JVM 的主要组成部分及其作用? JVM包含两个子系统和两个组件:Class loader(类装载)、Execution engine(执行引擎)、Runtime data area(运行时数据区)、Native Interface(本地接口)。 Class loader(类装载):根据给定的全限定名类名(如:java.lang.Object)装载class文…

Google Earth Engine(GEE)——ui.DateSlider时间进度条的设置

结果 函数: ui.DateSlider(start, end, value, period, <

基于ACO蚁群优化的城市最佳出行路径规划matlab仿真

目录 1.程序功能描述 2.测试软件版本以及运行结果展示 3.核心程序 4.本算法原理 5.完整程序 1.程序功能描述 基于ACO蚁群优化的城市最佳出行路径规划matlab仿真&#xff0c;可以修改城市个数&#xff0c;输出路径规划结果和ACO收敛曲线。 2.测试软件版本以及运行结果展示…

Google trend搜索关键词

Google trend地址&#xff1a;https://trends.google.com/trends/?geoUS&hlzh-CN 1、具体的操作步骤如下&#xff1a; 2、Google trend搜索页面如下&#xff1a;

2024-06-23 编译原理实验3——语义分析

文章目录 一、实验要求二、实验设计三、实验结果四、附完整代码 补录与分享本科实验&#xff0c;以示纪念。 一、实验要求 基于前面的实验&#xff0c;编写一个程序对使用 C—语言书写的源代码进行语义分析&#xff0c;输出语义分析中发现的错误&#xff08;涉及 17 种错误类…

mac电脑守护神CleanMyMac2024免费版本下载

&#x1f31f; 电脑的守护神&#xff1a;CleanMyMac&#x1f47e; 亲爱的数码控们&#xff0c;是不是每次看到电脑上满满的垃圾文件和缓慢的运行速度就感到头疼呢&#xff1f;别怕&#xff0c;今天我要来给你们安利一款神奇的小帮手——CleanMyMac&#xff01;它可是我们电脑的…

【驱动篇】龙芯LS2K0300之LED驱动

实验目的 点亮龙芯开发板上面的用户自定义LED灯&#xff0c;编写LED驱动以及测试用例验证实现效果&#xff0c;LED位于开发板左下方&#xff08;靠近USB口&#xff09;第二个 原理图 LED通过电阻上拉至电源P3V3&#xff0c;低电平时LED被点亮 设备树 打开arch/loongarch/boo…

【职场人】如何与同事有效沟通

在职场中&#xff0c;沟通如同桥梁&#xff0c;连接着每一位职场人士的心灵与智慧。有效的沟通不仅能让工作更加顺畅&#xff0c;还能让团队关系更加和谐。那么&#xff0c;如何与同事进行有效沟通呢&#xff1f;下面&#xff0c;我将结合个人经验和一些幽默的比喻&#xff0c;…

音频数据集1--LJSpeech单人语音

LJ Speech Dataset 版本号: 1.1 , 文件大小: 2.6GB 1.简介 1. 1 内容简介 LJS是一个语音数据集&#xff0c;包含 13,100 个音频片段&#xff0c;内容为Linda Johnson(欧美女性)朗读的 7 本书籍段落(非小说类)。每个片段都提供文本转录&#xff0c;片段长度从 1 到 10 秒不等&…

八大排序之希尔排序

一、概念及其介绍 希尔排序(Shell Sort)是插入排序的一种&#xff0c;它是针对直接插入排序算法的改进。 希尔排序又称缩小增量排序&#xff0c;因 DL.Shell 于 1959 年提出而得名。 它通过比较相距一定间隔的元素来进行&#xff0c;各趟比较所用的距离随着算法的进行而减小…

什么是微分和导数?

文章目录 设立问题微分特性指数特性线性特性常数特性 多项式微分导数 在机器学习领域&#xff0c;有多种解决最优化问题的方法&#xff0c;其中之一就是使用微分。 通过微分&#xff0c;可以得知函数在某个点的斜率&#xff0c;也可以了解函数在瞬间的变化。 设立问题 请想象一…

Tortoise 删除文件

1、右击需要删除的文件&#xff0c;选择Delete 2、提交

【查看显卡信息】——Ubuntu和windows

1、VMware虚拟机 VMware虚拟机上不能使用CUDA/CUDNN&#xff0c;也安装不了显卡驱动 查看显卡信息&#xff1a; lspci | grep -i vga 不会显示显卡信息&#xff0c;只会输出VMware SVGA II Adapter&#xff0c;表示这是一个虚拟机&#xff0c;无法安装和使用显卡驱动 使用上…