001_PyQt简介

本系列面向零基础小白,从零开始到Pyqt 进行项目实战。

什么叫从零开始?从软件安装、环境配置开始。 不跳过一个细节,不漏掉一行代码,不省略一个例图。

PyQt作为一个强大的工具包,成功地将脚本语言python和QT库融合到了一起,利 用它可以很方便的创建GUI应用程序。提到它就必须先提一下python和QT。

我们按着python---QT---Pyqt的路线开始本篇文章。

Python简介

Python是一种开源的、面向对象的解释型脚本语言,由Guido van Rossum于1989年底发明,第一个公开发行版发行于1991年。由于面向对象特性, python支持面向对 象语言的多态、运算符重载、多重继承等典型高级概念,也因此能够作为C++ 和Java 等常用高级编程语言的理想脚本工具 。

Python语法简洁、语义清晰,类库丰富强大,易学易用,能够轻松地把用其它语言 制作的各种模块(尤其是C++ )联结起来,因此也享有“ 胶水语言” 的美誉。

Python支持现存的各种主流操作系统,例如 Windows、Linux、Mac Os x 甚至 这样的嵌入式系统。自诞生之日以来,经过二十余年的发展, python已经和Tel 、Perl 一起跻身于目前最流行的三大跨平台脚本语言之列。

什么是Qt 

Qt(官方发音 [kju:t])是一个跨平台的C++开发库,主要用来开发图形用户界面(Graphical User Interface,GUI)程序,是最强大的 GUI 库之一,能够为应用程序开发者提供建立图形用户界面所需的功能,可以实现高级 API 来访问桌面和移动系统的各种服务。

Qt是一个跨平台的C++图形用户界面应用程序开发框架,最初由挪威Trolltech(奇趣科技)公司于1995 年推出,接着于 2008年被Nokia(诺基亚)公司收购18],随着诺基亚的没落再次于 2012 年被出让给芬兰 Digia 公司[9]。Qt 具有丰富的 C++类库,扩展方便,允许组件编程,同时提供了相当多的快速开发工具。它不仅可以用于开发GUI程序,也支持例如服务器等典型非GUI程序的开发。

由于Qt 是纯 C++ 开发的,正常情况下需要先学习C语言、然后在学习C++然后才能使用Qt开发带界面的程序。

多亏了开源社区使得Qt 还可以用Python、Ruby、Perl 等脚本语言进行开发。

Qt是完全面向对象的、易扩展,可应用于组件编程,并可以用于嵌入式开发。它是目前流行的Linux桌面环境KDE 的基础,是Linux和嵌入式操作系统下的主流图形界面开发环境,其最大优势在于只需编写一次代码,就能编译部署在任何操作系统和硬件上。因为擅长图形界面开发,如今更扩展到移动及嵌入式设备开发。对于商业软件公司来说极具价值,可以广泛应用于物联网特别是智能汽车、智能制造业等的研发。

Qt 支持的操作系统有很多,例如通用操作系统 Windows、Linux、Unix,智能手机系统Android、iOS, 嵌入式系统等等。

QT官网:点击这里跳转官网

PyQt是怎么回事

PyQt 是在1998年出Phil Thompson 开发的。库是目前最强大的 GUI库之:yQt 结合 Qt库完美实现了一个拥有超过 400 个类、将近6000个函数和方法的 Python 模块集。它作为一个工具包支持跨平台特性,可以运行在所有主流操作系统上,例如WiLinux和 Mac OS X。PyQt采用 GPL 和商业许可双许可证,开发人员可以自由ndows、选择。1PyQt 从版本4开始,GPL许可证可用于所有平台而不是像先前一样仅仅局限于Linux上。

PyQt5 是一套 Python 绑定 Digia QT5 应用的框架。PyQt5 实现了一个 Python模块集,有 620 个类,6000 个函数和方法。

PyQt是Qt框架的Python语言实现,由Riverbank Computing开发,是最强大的GUI库之一。PyQt提供了一个设计良好的窗口控件集合,每一个PyQt控件都对应一个Qt控件,因此PyQt的API接口与Qt的API接口很接近,但PyQt不再使用QMake系统和Q_OBJECT宏。

PyQt的开发者是英国的“Riverbank Computing”公司。它提供了GPL(简单的说,以GPL协议发布到网上的素材,你可以使用,也可以更改,但是经过你更改然后再次发布的素材必须也遵守GPL协议,主要要求是必须开源,而且不能删减原作者的声明信息等)与商业协议两种授权方式,因此它可以免费地用于自由软件的开发。

因为可用类众多,它们被人为划分为以下七个模块
1、QtCore。QtCore 模块主要用于时间、文件、目录、各种数据类型、流、网址、MIME 类型、线程或进程等相关的核心非GUI功能。
2、QtGui 模块包含按钮、窗体、状态栏、工具栏、滚动条、位图、颜色、字体等图形组件及相关类。

3、QtNetwork。QtNetwork 模块包含所有与网络编程相关的类,这些类开发者可以自由使用 TCP/IP 和 UDP的客户端和服务器编写这些类,以使网络编程更轻便简单。

4、QtXml。QtXml 包含使用 XML文件的类,这个模块提供了SAX和 DOM API的实现。
5、QtSvg。QtSvg 模块提供用于显示 SVG文件内容的类。可缩放矢量图形(ScalableVector Graphics,简称 SVG)是一种用 XML格式来描述二维图形和图形应用程序的语言。
6、QtOpenGL。QtOpenGL, 模块无缝集成了 Qt的 GUI库和 OpenGL 库,利用 OpenGL 库来进行 2D 和 3D 图形渲染。
7、QtSql。QtSql模块提供用于数据库的类。

PyQt优点:

PyQt5特性如下:

  •  跨平台性:PyQt支持多个平台,包括Linux、Windows和Mac OS等,因此可以使开发人员更加方便地编写可移植的应用程序。
  • 易学易用:PyQt使用Python编写,Python是一门简单易学的语言,因此,开发者可以快速上手。
  • 简洁高效:PyQt的API设计简洁、高效,而且非常易于阅读和理解。
  • 灵活性:PyQt支持自定义控件和定制Widget,因此可以轻松实现各种各样的GUI效果。
  • 丰富支持:PyQt有许多优秀的文档和社区支持,可以帮助您快速学习和解决问题。
  • 可扩展性:PyQt可以与其他Python库和第三方工具集成,以提供更广泛的功能和灵活性由于PyQt的文档非常详细,这对于新手来说非常有帮助。如果你遇到了问题,通常可以在文档中找到解决方案。而且,由于PyQt非常流行,你可以在社区中找到许多有用的资源,包括示例代码和教程。

另外,PyQt还有一个活跃的开发者社区,这意味着如果你需要帮助,可以在论坛或聊天室中找到其他人。他们的经验丰富,通常可以为你提供有用的建议。

PyQt解析

PyQt核心思想是基于信号与槽的事件驱动编程。信号与槽是PyQt5中实现组 件之间交互的机制。当组件的状态发生变化或用户执行某个操作时,会触发一 个信号,然后与该信号关联的槽函数会被自动调用。

PyQt5 提供了丰富的组件库,包括按钮、标签、文本框、下拉框等,以 满足不同应用程序的需求。开发者可以使用这些组件来构建用户界面,通过设 置属性、连接信号与槽,以及编写相应的槽函数来实现各种交互和功能。此外, PyQt5 还提供了布局管理管理器的概念,这些管理工具按照既定规则自动调整 组件布局,确保在多平台和设备上界面展示一致。这样,开发者就无需手动设 置组件位置和大小,减少了界面开发的复杂性。

借助PyQt5开发者可以利用强大的功能和工具来创建用户喜欢的界面。可 以采用丰富的组件和布局管理器搭建界面,并利用信号与槽机制让组件之间实 现交互,从而提供丰富多样的用户体验。此外,PyQt5 还支持多媒体、数据库 等功能,满足各种应用的需求。开发者还可以结合项目的实际要求,灵活使用 PyQt5 打造出高效且更友好的图形用户界面。

PyQt版本

PyQt支持三个版本:PyQt6、PyQt5和PyQt4。下面是它们之间的比较:

PyQt6是最新版本,支持Python 3.6及以上版本,而PyQt5和PyQt4支持Python 2.7和Python 3.4及以上版本。
PyQt6的API与PyQt5比较相似,但与PyQt4不同。PyQt6和PyQt5支持许多相同的特性,如界面设计工具Qt Designer。
PyQt6比PyQt5和PyQt4更稳定、更快、更安全、更易于使用。它提供了更好的性能和更好的可扩展性。
PyQt6支持Python 3下的Type Hints,使代码更易于阅读和维护;PyQt5不支持,而PyQt4更不支持。
PyQt6与Qt的最新版本(当前为Qt 6.2 LTS)相对应,而PyQt5和PyQt4与旧版本相对应。因此,PyQt6包含更多的特性和改进

Python 应用场景简介

下面是一些 PyQT5 可以应用于自动化办公的示例:

  1. 电子邮件客户端:可以使用 PyQT5 创建一个自定义的电子邮件客户端,它可以自动从一个或多个电子邮件账户中下载和发送邮件。

  2. 自动化数据输入:可以使用 PyQT5 创建一个应用程序,它可以自动读取 Excel 或 CSV 文件中的数据,并将其输入到指定的应用程序中。

  3. 自动化报告生成:可以使用 PyQT5 创建一个应用程序,它可以自动读取数据库或其他数据源中的数据,并根据指定的报告模板生成报告。

  4. 自动化文件操作:可以使用 PyQT5 创建一个应用程序,它可以自动执行文件操作,例如复制、剪切、粘贴、重命名等。

  5. 自动化任务调度:可以使用 PyQT5 创建一个应用程序,它可以自动执行定期重复的任务,例如备份文件、清理文件夹、发送定期报告等。

PyQt是一个强大的Python GUI框架,被广泛应用于各种应用程序的开发中。不仅仅是在自动化办公,具体的应用场景包括:
1. 桌面应用程序

  PyQt可以用于开发桌面应用程序,如音乐播放器、图像编辑器、文本编辑器、办公软件、游戏等。PyQt提供了丰富的GUI组件和强大的事件处理机制,可以实现各种复杂的交互功能。

2.数据可视化

  PyQt可以用于数据可视化,如绘图、图表、地图等。PyQt提供了多种图形绘制工具和丰富的颜色、字体、线条属性设置,可以实现各种复杂的数据可视化效果。

3. 网络应用程序

  PyQt可以用于开发网络应用程序,如Web浏览器、聊天软件、邮件客户端等。PyQt提供了强大的网络编程功能,支持TCP/IP、UDP、HTTP等协议,可以实现各种复杂的网络应用程序。

4. 科学计算

  PyQt可以用于科学计算,如利用PyQt和NumPy进行数据处理、模拟、分析等。PyQt提供了丰富的数据可视化工具和图形绘制工具,可以实现各种复杂的科学计算应用程序。

5. 自动化测试
  PyQt可以用于自动化测试,如利用PyQt和Selenium进行网页自动化测试、利用PyQt和Robot Framework进行GUI自动化测试等。PyQt提供了强大的GUI测试工具和事件处理机制,可以实现各种复杂的自动化测试需求。

PyQT5 可以用于创建各种类型的自动化办公应用程序。使用 PyQT5,开发人员可以快速构建功能强大、易于使用和高效的自动化办公应用程序,从而提高工作效率并减少错误率。

 PyQT5如何从入门到入土

  1. 了解 Python 编程语言:在学习 PyQT5 之前,你需要先掌握 Python 编程语言的基础知识。可以通过阅读 Python 编程书籍、在线教程或参加培训课程来学习 Python。

  2. 学习 PyQT5 基础知识:学习 PyQT5 的基础知识是非常重要的,因为它将帮助你了解如何创建简单的 GUI 应用程序。你可以使用 PyQT5 官方文档来学习 PyQT5 的基础知识。

  3. 实践 PyQT5 编程:一旦你掌握了 PyQT5 的基础知识,你可以开始实践编写简单的 PyQT5 应用程序。可以使用 PyQT5 的 IDE,如 QT Creator、PyCharm 或 Visual Studio Code 等来编写应用程序。

  4. 学习 PyQT5 进阶知识:在你掌握了 PyQT5 的基础知识之后,你可以学习 PyQT5 的进阶知识。这包括使用 PyQT5 创建复杂的 GUI 应用程序、使用 PyQT5 实现动画效果、使用 PyQT5 的样式表和主题等。

  5. 通过实际项目提高技能:最好的学习 PyQT5 的方法是通过实践项目来提高技能。可以参加一些 PyQT5 项目,如创建一个简单的计算器、创建一个文本编辑器、创建一个电子邮件客户端等。

总之,学习 PyQT5 需要时间和耐心。但是,一旦你掌握了 PyQT5 的技能,你就能够创建出高质量的 GUI 应用程序,这将是非常有价值的技能。

学习PYQT第一步是搭建环境,本系列教程所需工具为Python + PyCharm + PyQt5,将在后面章节从下载开始为你做详细介绍。

如果感觉本教程确实为你带来一点点收货,点击一个关注可好!!!

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

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

相关文章

nginx反向代理kafka集群实现内外网隔离访问 —— 筑梦之路

背景说明 我们在使用Kafka客户端连接到Kafka集群时,即使连接的节点只配置了一个集群的Broker地址,该Broker将返回给客户端集群所有节点的信息列表。然后客户端使用该列表信息(Topic的分区信息)再与集群进行数据交互。这里Kafka列表…

代码随想录算法训练营第36期DAY29

DAY29 39组合总和 class Solution {private: vector<vector<int>> result; vector<int>path; void backtracking(vector<int> candidates,int target,int sum,int startindex){ if(sum>target) return; if(sumtarget){ …

WordPress外贸建站程序对比

在选择建站引擎时&#xff0c;WordPress是许多企业和个体创业者的首选。然而&#xff0c;WordPress本身有各种不同的版本和扩展&#xff0c;因此在选择最适合你业务的引擎时需要仔细权衡。本文将对比一些流行的WordPress建站程序&#xff0c;帮助你找到最符合你需求的引擎。 1.…

pytorch-10 神经网络的损失函数

1. 回归&#xff1a;SSE和MSE # MSE损失函数 import torch from torch.nn import MSELossyhat torch.randn(size(50,), dtypetorch.float32) y torch.randn(size(50,), dtypetorch.float32)criterion MSELoss() loss1 criterion(yhat, y)# 计算mse 误差平方 criterion MS…

投影与降维

摘要&#xff1a; 投影是将数据从原始的高维空间映射到一个低维空间的过程&#xff0c;通常这个低维空间的维度小于原始空间。降维是减少数据集中变量数量的技术&#xff0c;旨在提取数据的代表性特征&#xff0c;同时去除无关或冗余的信息。两者都旨在处理高维数据&#xff0c…

Python操作Redis(连接方式、通用操作、字符串操作、Hash操作、List操作)

Python操作Redis 目录 Python操作Redis普通连接连接池连接通用操作字符串操作Hash操作List操作 安装&#xff1a;pip install redis 普通连接 每次连接都会创建新的连接 import redisconn redis.Redis(host127.0.0.1,port6379,db0, # 数据库编号(Redis支持多数据库)passwor…

SQL进阶(六):通关题:制作一个活动日历

目录 通关题&#xff1a;用 SQL 制作一个活动日历任务 1&#xff1a; 制作一个日历Q1: 在 2023 年当中&#xff0c;星期 2 出现的次数和星期 5 出现的次数的关系是&#xff1f;&#xff08;选择 > 或 < 或 &#xff09;Q2: 在 2023 年每个月的5号&#xff0c;10号&#x…

当CV遇上transformer(三)Clip模型及源码分析

当CV遇上transformer(三)Clip模型及源码分析 2020年10月&#xff0c;Dosovitskiy首次将纯Transformer的网络结构应用于图像分类任务中(ViT)&#xff0c;并取得了当时最优的分类效果&#xff0c;其研究成果是Transformer完全替代标准卷积的首次尝试。随着谷歌提出ViT之后&#…

Python 全栈体系【四阶】(四十五)

第五章 深度学习 十、生成对抗网络&#xff08;GAN&#xff09; 1. 图像生成技术概述 1.1 什么是图像生成技术 图像生成技术是指利用机器学习或深度学习等人工智能技术&#xff0c;通过训练模型来生成逼真的图像。这些技术可以根据给定的输入&#xff0c;生成与真实图像相似…

反序列化漏洞【1】

1.不安全的反序列化漏洞介绍 序列化&#xff1a;将对象转换成字符串&#xff0c;目的是方便传输&#xff0c;关键词serialize a代表数组&#xff0c;数组里有三个元素&#xff0c;第一个元素下标为0&#xff0c;长度为7&#xff0c;内容为porsche&#xff1b;第二个元素下标为1…

GPT-4o API 全新版本发布:提升性能,增加性价比

5月13日&#xff0c;OpenAI 发布了全新ChatGPT模型 GPT-4o&#xff0c;它在响应速度和多媒体理解上都有显著提升。在这篇文章中&#xff0c;我们将介绍 GPT-4o 的主要特点及其 API 集成方式。 什么是 GPT-4o&#xff1f; GPT-4o 是 OpenAI 于5月13日发布的最新多模态 AI 模型…

【简单介绍下在Ubuntu中如何设置中文输入法】

&#x1f308;个人主页: 程序员不想敲代码啊 &#x1f3c6;CSDN优质创作者&#xff0c;CSDN实力新星&#xff0c;CSDN博客专家 &#x1f44d;点赞⭐评论⭐收藏 &#x1f91d;希望本文对您有所裨益&#xff0c;如有不足之处&#xff0c;欢迎在评论区提出指正&#xff0c;让我们共…

PgMP考试难度大吗?社会认可怎么样?

对于已经在职场摸爬滚打多年&#xff0c;或者对项目和项目集管理具有极高兴趣和追求的你来说&#xff0c;一定听说过PgMP&#xff08;项目集管理专业人士&#xff09;这个国际认证。那么PgMP很难考吗&#xff1f; 免费送备考资料。联系我们&#xff1a;18938656370 一、PgMP考…

国产化数据库_金仓_Linux版Docker版部署过程及简单使用

国产化数据库金仓Linux版部署过程 文档参考&#xff1a;https://help.kingbase.com.cn/v8/install-updata/install-linux/install-linux-3.html#id12 以下安装是在Centos7系统下进行 0.安装包准备 找到你的操作系统对应的平台所支持的软件包下载&#xff0c;我这里下载的是x…

react的多级路由定义

在写实验室项目的时候&#xff0c;有一个需求&#xff0c;在二级路由页面点击按钮&#xff0c;跳转到详情列表页面&#xff0c;同时三级路由不用在导航栏显示&#xff0c;效果图如下&#xff1a; 前期的尝试&#xff1a; 在route,js文件这样定义的&#xff1a; {path: music,…

mysql权限体系

提示&#xff1a;根据课程视频总结知识点------2024.05.15 文章目录 权限处理逻辑1、 能不能连接2、能不能执行操作 权限授予与回收1、创建用户2、授予权限3、查看权限4、回收权限5、 权限级别 账户安全管理1、用户权限设定原则2、历史文件泄密 用户权限设定原则1. 只读用户--数…

.net中的依赖注入框架Autofac

文章目录 前言1. 安装 Autofac2. 创建一个简单的控制台应用程序3. 创建组件和接口4. 多种注册方式4.1. 单例注册4.2. 生命周期范围注册4.3. 命名注册4.4. Lambda 表达式注册4.5. 泛型组件注册 5. 属性注入6. 使用多个ContainerBuilder合并注册7. 使用多个 ContainerBuilder 示例…

哈希表+DFS快速解决力扣129题:求根节点到叶节点数字之和

❤️❤️❤️ 欢迎来到我的博客。希望您能在这里找到既有价值又有趣的内容&#xff0c;和我一起探索、学习和成长。欢迎评论区畅所欲言、享受知识的乐趣&#xff01; 推荐&#xff1a;数据分析螺丝钉的首页 格物致知 终身学习 期待您的关注 导航&#xff1a; LeetCode解锁100…

平均工资数据分析之回归

链接: R语言实战——中国职工平均工资的变化分析——相关与回归分析 1、模型诊断和评估的方法 1. 残差分析 1、残差图 (Residual Plot)&#xff1a;用于检查残差是否存在非随机模式。理想情况下&#xff0c;残差应随机分布在零附近。 2、Q-Q 图 (Quantile-Quantile Plot)&am…

【liunx】yumvim

目录 Linux 软件包管理器 yum 关于 rzsz 注意事项 查看软件包 Linux开发工具 Linux编辑器-vim使用 vim的基本概念 vim的基本操作 vim正常模式命令集 vim末行模式命令集 简单vim配置 配置文件的位置 sudo提权 Linux 软件包管理器 yum 1.yum是什么&#xff1…