热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

PyQt5QTextEdit:深入解析Python中多功能GUI库的应用与实现

本文详细探讨了PyQt5中QTextEdit组件在Python多功能GUI库中的应用与实现。PyQt5是Qt框架的Python绑定,提供了超过620个类和6000个函数及方法,广泛应用于跨平台应用程序开发。QTextEdit作为其中的重要组件,支持丰富的文本编辑功能,如富文本格式、文本高亮和自定义样式等。PyQt5的流行性不仅在于其强大的功能,还在于其易用性和灵活性,使其成为开发复杂用户界面的理想选择。

简单的介绍:

python对跨平台的GUI工具集Qt的包装实现了620个类和6000函数及方法pyQt是作为python的插件实现的。

优点:

比较流行的一个TKinter的替代品,功能非常强大,可以用Qt开发多美漂亮的界面也就可以用pyqt开发多么漂亮的界面。跨平台的支持很好。

缺点:

小白学习中还没有发现,等发现更新~~哈哈

pyQt5的类存在与如下模块当中:

QtGui模块:

涵盖多种基本图形功能的类,包括但不限于:窗口集、事件处理、2D图形,基本的图像,界面和字体文本

QtCore模块:

涵盖了包括核心的非GUI的功能,此模块被用于处理程序中涉及到的time,文件,目录。数据类型。文本流,链接,mime、线程或进程等对象。

Qtwidgets模块:

包含了一整套UI元素组件,用于建立符合系统风格系统风格的classic界面,非常方便,可以在安装时选择是否使用此功能

QtMuLtimedia模块:

包含了一套类库,该类库被用于处理多媒体事件,通过调用API接口访问摄像头,语音设备,收发消息等

QtBluetooth模块:

包含了处理蓝牙活动的类库,它的功能包括扫描设备,连接,交互等行为(很厉害)

QtNetwork模块:

包含用于网络编程的类库,这组类程序通过提供便捷的TCP/IP及UDP的c/s程式码集合,使得基本于Qt的网络编程更容易

Qtpositioning模块:

用于获取位置信息,此模块允许使用多种方式达成定位,包括但不限于:卫星,无线网,文字信息。此应用一般用于网络地图定位系统

Enginio模块:

用于构建客户端的应用程序库,用于在运行时访问Qt Cloud服务器托管的应用程序

Qtwebsockets模块:

包含了一组类程序,用以实现websocket协议。

Qtwebkit模块:

包含了用于实现基于webkit2的网络浏览器的类库。

QtWebkitWidgets模块:

包含用于基于WebKit1的Web浏览器实现的类,用于基于QtWidgets的应用程序。

QtXml模块:

包含了用于处理XML的类库,此模块为SAX和DOM API的实现提供了方法。

QtSvg模块:

通过一组类,为显示矢量图形文件的内容提供了方法。

QtSql模块:

提供了数据库对象的接口以供使用。

QtTest模块:

包含了可以通过单元单元测试,以调试PyQt5应用程序的功能。

后续还有更新,哈哈哈~~

我来了,最近有点忙更新的慢,在自学中遇到了好多好多问题,不过慢慢都解决了

话不多说看看我这几天的成就(要是有什么不对的地方欢迎评论说明,谢谢啦!)

登陆界面

from

0759825e40ab4012fbf7c585d9845996.png

哈哈,这个就是我制作后运行的界面

我使用的是pycharm这个编辑器,感觉还不错,是别人推荐的,对于小白的我,我只会用他把python文件保存在什么地方,运行,我太难了,要是出问题,我采取了,小白采取的方法,卸载重装,哈哈~~

下面附上pycharm的官网

PyCharm: the Python IDE for Professional Developers by JetBrains​www.jetbrains.com
ad54c0e8c8f5d287da53788e101322ca.png

因为这个是国外的东西,所以全是英文,对于我这个四级没有考过的人,太难了,其实也好找一般只要看见download可以点击试试就是下载这个东西的地方

我在附上安装教程

https://jingyan.baidu.com/article/64d05a02f6dbbfde55f73be2.html​jingyan.baidu.com

不行了,已经深夜了,对于当代大学生,刻苦是应该的,但是身体重要,后续我在更新这个登录小程序每一行代码解释说明

等着我哦

我来了,下面我就开始进行个人理解的讲解

from PyQt5.Qt import *
from PyQt5.QtWidgets import (QApplication, QWidget, QPushButton, QTextEdit, QVBoxLayout)
import sys

先说一下怎么导入模块还有模块的方法吧

1、第一类导入库的方法&#xff1a;import<库名>

怎么使用方法&#xff1a;<库名>.<函数名>.<函数参数>

2、第二类导入库的方法&#xff1a;from<库名>import<函数名>

form<库名>import*

怎么使用方法&#xff1a;<函数名>&#xff08;<函数参数>&#xff09;

两种不同&#xff1a;第一种不会出现函数名的重名的问题

第二种方法是会出现的

PyQt5.Qt导入的模块很多&#xff0c;包括了Qtwidgets还有Qtcore模块&#xff0c;我这边写出现这个导入库的方法&#xff0c;是因为&#xff0c;更好的如这些库的方法&#xff0c;不会运行起来报错&#xff0c;因为发现自己的错误是很难的

下面这个导入的库是pyQt5.Qtwidgets这个 包含了一整套UI元素组件&#xff0c;用于建立符合系统风格系统风格的经典界面&#xff0c;之所以还是重复的写&#xff0c;是因为我才开始写就只用了这个库&#xff0c;后面发现不行&#xff0c;补了第一行的&#xff0c;太难了

def __int__(self):

定义类的时候&#xff0c;若是添加_init_方法&#xff0c;那么在创建类的实例的时候&#xff0c;实例会自动调用这个方法&#xff0c;一般用来对实例的属性进行初始化&#xff0c;实参self&#xff0c;它是一个指向实例本身的引用&#xff0c;让实例能够访问类中的属性和方法

self.setGeometry(300, 300, 400, 300)

方法self.setGeometry&#xff08;&#xff09;是设置窗口的大小和位置上面括号里的前两个参数是设置方位的&#xff0c;根据横轴还有纵轴来定位置的&#xff0c;其中&#xff08;0.0)这个位置在屏幕的最左角的地方&#xff0c;后面的两个参数是设置窗口大小&#xff0c;设置的后两个参数的第一个参数设置的长&#xff0c;下一个是宽

self.Le2 &#61; QLineEdit(self)#设置一个文本框对象
self.Le1.resize(160, 24)
self.Le1.move(145, 50)

先创建一个文本框的对象&#xff0c;后面第二行代码&#xff0c;resize&#xff08;&#xff09;方法设置文本框的大小&#xff0c;mov&#xff08;&#xff09;设置位置

if __name__ &#61;&#61; &#39;__main__&#39;:

这个写了这句话并将执行的语句放在这个判断语句后面&#xff0c;那么只有在程序本身被执行的时候才能运行这个判断语句下面的语句&#xff0c;否则程序被作为模块导入的时候就会执行

app &#61; QApplication(sys.argv)

每个PyQt5应用程序必须创建一个应用程序对象。 sys.argv参数是来自命令行的参数列表。 Python脚本可以从shell运行。 写了这句话就能让我们的程序从命令行启动。

self.show()
show&#xff08;&#xff09;方法在屏幕上显示窗口小部件。 一个小部件首先在内存中创建&#xff0c;然后在屏幕上显示。

sys.exit(app.exec_())
最后&#xff0c;我们进入应用程序的主循环(main loop)。 事件处理从这一点开始。 主循环(main loop)从窗口系统接收事件并将它们分派到应用程序小部件。 如果我们调用exit&#xff08;&#xff09;方法或者主窗口小部件被破坏&#xff0c;那么主循环(main loop)就会结束。

sys.exit&#xff08;&#xff09;方法确保一个干净的退出。

exec_&#xff08;&#xff09;方法有一个下划线。 这是因为exec是一个Python关键字。 因此&#xff0c;使用exec_&#xff08;&#xff09;。

下面我对代码又做了一些改进

668118581c8b77c5c54ba5fb760463e2.png

我都码了这么多字点个赞嘛&#xff0c;关注一波&#xff0c;后面我还会持续更新&#xff0c;想要代码可以私聊我&#xff0c;我手把手给您提供&#xff0c;哈哈哈~



推荐阅读
  • 技术分享:从动态网站提取站点密钥的解决方案
    本文探讨了如何从动态网站中提取站点密钥,特别是针对验证码(reCAPTCHA)的处理方法。通过结合Selenium和requests库,提供了详细的代码示例和优化建议。 ... [详细]
  • 1:有如下一段程序:packagea.b.c;publicclassTest{privatestaticinti0;publicintgetNext(){return ... [详细]
  • 深入理解 SQL 视图、存储过程与事务
    本文详细介绍了SQL中的视图、存储过程和事务的概念及应用。视图为用户提供了一种灵活的数据查询方式,存储过程则封装了复杂的SQL逻辑,而事务确保了数据库操作的完整性和一致性。 ... [详细]
  • 数据库内核开发入门 | 搭建研发环境的初步指南
    本课程将带你从零开始,逐步掌握数据库内核开发的基础知识和实践技能,重点介绍如何搭建OceanBase的开发环境。 ... [详细]
  • 掌握远程执行Linux脚本和命令的技巧
    本文将详细介绍如何利用Python的Paramiko库实现远程执行Linux脚本和命令,帮助读者快速掌握这一实用技能。通过具体的示例和详尽的解释,让初学者也能轻松上手。 ... [详细]
  • TCP长连接设备管理平台:架构与功能概览
    本文介绍了基于TCP长连接的设备管理平台的设计理念、技术选型及主要功能模块。最初,项目旨在实现简单的协议测试,但随着需求扩展,逐步演变为一个完整的前后端分离系统。 ... [详细]
  • 探索如何使用公共数据集为您的编程项目提供动力。无论您是编程新手还是有经验的开发者,本文将为您提供实用建议和资源,帮助您启动并运行一个创新的数据驱动型项目。 ... [详细]
  • Windows服务与数据库交互问题解析
    本文探讨了在Windows 10(64位)环境下开发的Windows服务,旨在定期向本地MS SQL Server (v.11)插入记录。尽管服务已成功安装并运行,但记录并未正确插入。我们将详细分析可能的原因及解决方案。 ... [详细]
  • PyCharm中配置Pylint静态代码分析工具
    本文详细介绍如何在PyCharm中配置和使用Pylint,帮助开发者进行静态代码检查,确保代码符合PEP8规范,提高代码质量。 ... [详细]
  • 本文将介绍如何编写一些有趣的VBScript脚本,这些脚本可以在朋友之间进行无害的恶作剧。通过简单的代码示例,帮助您了解VBScript的基本语法和功能。 ... [详细]
  • 本文详细介绍了如何使用PHP检测AJAX请求,通过分析预定义服务器变量来判断请求是否来自XMLHttpRequest。此方法简单实用,适用于各种Web开发场景。 ... [详细]
  • 本文详细介绍了 Dockerfile 的编写方法及其在网络配置中的应用,涵盖基础指令、镜像构建与发布流程,并深入探讨了 Docker 的默认网络、容器互联及自定义网络的实现。 ... [详细]
  • 本文详细介绍了《问道》手游在2020年12月31日进行的服务器维护情况,以及此次更新中新增的跨年狂欢活动和寒假活动等内容。同时,文章还涵盖了其他重要的系统优化与修复信息。 ... [详细]
  • 本文探讨了在地理信息系统中,如何通过图层数据获取任意两条道路的交叉点坐标及其名称。文中详细介绍了实现方法和相关技术细节。 ... [详细]
  • 深入解析TCP/IP五层协议
    本文详细介绍了TCP/IP五层协议模型,包括物理层、数据链路层、网络层、传输层和应用层。每层的功能及其相互关系将被逐一解释,帮助读者理解互联网通信的原理。此外,还特别讨论了UDP和TCP协议的特点以及三次握手、四次挥手的过程。 ... [详细]
author-avatar
书友33947127
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有