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

2024-06-20 11:04

本文主要是介绍【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.额外

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

这篇关于【PyQt5】python可视化开发:PyQt5介绍,开发环境搭建快速入门的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1077949

相关文章

一文教你使用Python实现本地分页

《一文教你使用Python实现本地分页》这篇文章主要为大家详细介绍了Python如何实现本地分页的算法,主要针对二级数据结构,文中的示例代码简洁易懂,有需要的小伙伴可以了解下... 在项目开发的过程中,遇到分页的第一页就展示大量的数据,导致前端列表加载展示的速度慢,所以需要在本地加入分页处理,把所有数据先放

树莓派启动python的实现方法

《树莓派启动python的实现方法》本文主要介绍了树莓派启动python的实现方法,文中通过图文介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧... 目录一、RASPBerry系统设置二、使用sandroidsh连接上开发板Raspberry Pi三、运

Python给Excel写入数据的四种方法小结

《Python给Excel写入数据的四种方法小结》本文主要介绍了Python给Excel写入数据的四种方法小结,包含openpyxl库、xlsxwriter库、pandas库和win32com库,具有... 目录1. 使用 openpyxl 库2. 使用 xlsxwriter 库3. 使用 pandas 库

本地搭建DeepSeek-R1、WebUI的完整过程及访问

《本地搭建DeepSeek-R1、WebUI的完整过程及访问》:本文主要介绍本地搭建DeepSeek-R1、WebUI的完整过程及访问的相关资料,DeepSeek-R1是一个开源的人工智能平台,主... 目录背景       搭建准备基础概念搭建过程访问对话测试总结背景       最近几年,人工智能技术

python实现简易SSL的项目实践

《python实现简易SSL的项目实践》本文主要介绍了python实现简易SSL的项目实践,包括CA.py、server.py和client.py三个模块,文中通过示例代码介绍的非常详细,对大家的学习... 目录运行环境运行前准备程序实现与流程说明运行截图代码CA.pyclient.pyserver.py参

使用Python实现批量分割PDF文件

《使用Python实现批量分割PDF文件》这篇文章主要为大家详细介绍了如何使用Python进行批量分割PDF文件功能,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录一、架构设计二、代码实现三、批量分割PDF文件四、总结本文将介绍如何使用python进js行批量分割PDF文件的方法

Python实现多路视频多窗口播放功能

《Python实现多路视频多窗口播放功能》这篇文章主要为大家详细介绍了Python实现多路视频多窗口播放功能的相关知识,文中的示例代码讲解详细,有需要的小伙伴可以跟随小编一起学习一下... 目录一、python实现多路视频播放功能二、代码实现三、打包代码实现总结一、python实现多路视频播放功能服务端开

使用Python在Excel中创建和取消数据分组

《使用Python在Excel中创建和取消数据分组》Excel中的分组是一种通过添加层级结构将相邻行或列组织在一起的功能,当分组完成后,用户可以通过折叠或展开数据组来简化数据视图,这篇博客将介绍如何使... 目录引言使用工具python在Excel中创建行和列分组Python在Excel中创建嵌套分组Pyt

Python实现视频转换为音频的方法详解

《Python实现视频转换为音频的方法详解》这篇文章主要为大家详细Python如何将视频转换为音频并将音频文件保存到特定文件夹下,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录1. python需求的任务2. Python代码的实现3. 代码修改的位置4. 运行结果5. 注意事项

Python利用自带模块实现屏幕像素高效操作

《Python利用自带模块实现屏幕像素高效操作》这篇文章主要为大家详细介绍了Python如何利用自带模块实现屏幕像素高效操作,文中的示例代码讲解详,感兴趣的小伙伴可以跟随小编一起学习一下... 目录1、获取屏幕放缩比例2、获取屏幕指定坐标处像素颜色3、一个简单的使用案例4、总结1、获取屏幕放缩比例from