Python----PyQt开发(PyQt基础,环境搭建,Pycharm中PyQttools工具配置,第一个PyQt程序)

news/2025/2/18 10:07:17/

一、QT与PyQT的概念和特点

1.1、QT

        QT是一个1991年由The Qt Company开发的跨平台C++图形用户界面应用程序开发 框架,可构建高性能的桌面、移动及Web应用程序。也可用于开发非GUI程序,比如 控制台工具和服务器。Qt是面向对象的框架,使用特殊的代码生成扩展(称为元对象 编译器(Meta Object Compiler, moc))以及一些宏,Qt很容易扩展,并且允许真正 的组件编程。2008年Qt Company科技被诺基亚公司收购,随后4年里,因各种原因 最终导致于2012年,被Digia公司收购。

         平台支持:QT支持多个操作系统,包括Windows、macOS、Linux、Android和 iOS等,使开发人员能够轻松地开发一次代码,然后在不同平台上部署和运行应 用程序。

        GUI开发:QT提供了一套强大的GUI库,可以快速创建现代化的用户界面。它包 括丰富的UI控件、布局管理器、绘图和图像处理工具,使开发人员能够创建各种 各样的用户界面。

        信号与槽机制:QT引入了一种名为"信号与槽"的机制,用于处理对象之间的通信 和事件处理。这种机制使开发人员能够轻松地实现应用程序的事件响应和数据传 递。

        数据库访问:QT提供了对多种数据库的支持,包括MySQL、SQLite、Oracle和 Microsoft SQL Server等。它提供了一套完整的API,使开发人员能够方便地连 接、查询和操作数据库。

        网络编程:QT提供了网络编程的支持,包括TCP/IP和UDP通信、HTTP请求和响 应、FTP传输等。它使开发人员能够构建具有网络功能的应用程序,如客户端-服 务器应用程序和网络通信工具。

        多媒体功能:QT具有丰富的多媒体功能,包括音频和视频播放、图像处理和操 作、摄像头和音频设备访问等。它提供了一套简单易用的API,使开发人员能够 轻松地集成多媒体功能到应用程序中。

        总之,QT是一个功能强大的C++应用程序开发框架,具有跨平台支持、GUI开 发、信号与槽机制、数据库访问、网络编程和多媒体功能等特点。它被广泛应用 于各种领域的应用程序开发,包括桌面软件、移动应用、嵌入式系统和图形化界 面工具等。

1.2、PyQT 

        PyQt 是一个用于创建桌面应用程序的 Python 框架,它是基于 Qt 库的 Python 绑 定。用于开发图形用户界面、网络应用、数据库驱动和其他各种应用程序。PyQt 提 供了对 Qt 库的 Python 封装,使得开发者可以使用 Python 编程语言来利用 Qt 的强 大功能。

1.2.1、pyqt5

        PyQt5 是 Riverbank Computing 开发的 GUI 小部件工具包的最新版本。它是 Qt 的 Python 接口,是最强大和流行的跨平台 GUI 库之一。

        PyQt5 是 Python 编程语言和 Qt 库的混合体。 所以说PyQt5就是Python的图 形界面开发库。 程序的用户交互界面,称为UI(User interface)。通过使用PyQt5库,我们可 以快速制作自己的小工具。

pyqt5优势: 

1.文档齐全:PyQt是对Qt库的一个绑定,且保持了Qt库原有的API,因此PyQt除了可 以使用自己的文档,也几乎可以通用Qt的文档。

2.稳定性高:PyQt使用C++开发,底层使用Qt库,因此比纯Python的GUI库更加稳定 可靠。PyQt支持跨平台开发,而且保持着和Qt库的同步更新,因此在不同的操作系统和 Python版本下都有良好的兼容性。

3.生态支持:PyQt拥有一个活跃的社区和丰富的第三方库支持,可以方便地实现各种功 能,如数据库操作、图形绘制、图像处理等。另外,PyQt作者也开发了一些扩展包,如 PyQtChart、PyQtDataVisualization等,使得绘制图表和数据可视化变得更加容易。

4.开源免费:PyQt5采用双开源协议,第一种采用GPL(GNU General Public License)协议,开发人员可以免费使用PyQt5(但你的应用也必须遵循GPL协议即源代码 公开),第二种商业许可证,如果你不想公开你的源码,或者不希望遵守GPL协议,那么你 可以购买PyQt5的商业许可证,即可不公开程序源码。这使得PyQt在开源界和商业界都有 广泛的应用和支持。 

应用: 

1.游戏开发,虽然 PyQT5 主要用于创建用户界面,但它也可以用于游戏开发,尤其是 那些注重故事叙述和角色交互的图形冒险游戏。

2.自动化和控制系统,PyQT5 可以用于创建监控和控制系统,它提供了对信号和槽机制 的支持,这有助于实现复杂的事件处理逻辑。

3.桌面应用程序,它提供了丰富的控件和组件,以及强大的布局管理器,使得开发者可 以轻松地创建具有复杂界面的应用程序。

4.嵌入式开发,PyQT5 可以用于创建定制的硬件设备上的应用程序。 

1.2.2、 pyqt6

        PyQt6 是一个功能强大的 Python 库,用于创建跨平台的图形用户界面应用程序。它是 Qt 应用程序框架的 Python 绑定,Qt 是一个广泛使用的 C++ 库。

  • PyQt6: 绑定到 Qt 6.x 系列。Qt 6 是对 Qt 5 的重大更新,包含许多功能增强和重构。

  • 在 PyQt6 中,许多类和方法的名称和参数进行了更改,有些过时或不再支持。

  • PyQt6 进行了模块化改进,有些模块被拆分或重命名。例如,QtWidgetsQtGui 和 QtCore 模块在 PyQt6 中的使用方式有所调整,某些类可能需要从不同的模块导入。

  • PyQt6 使用 Python 的原生类型,而 PyQt5 除了提供信号与槽的传统方式外,还允许使用老式的字符串形式来定义信号和槽。

  • PyQt6 在类型提示方面更为严格,鼓励类型注释。这有助于开发人员在使用 IDE 时获得更好的补全和错误提示。

  • Qt 6 在渲染和性能方面做了一些改进,支持更现代的图形技术(如 Vulkan),使得图形和动画的展示更加流畅。

  • Qt 6 引入了许多新的功能,例如对 3D 图形的增强支持、改进的多媒体处理、对高 DPI 显示器的更好支持等,这些特性在 PyQt6 中也得到了体现。

        由于 API 的更改,PyQt5 和 PyQt6 之间的代码不一定可以互换。如果你正在开发新项目,建议使用 PyQt6,因为它将提供最新的功能和更好的支持。

二、PySide与PyQt的区别

2.1、 什么是Pyside

        PySide,最初是由是由Nokia公司开发,现在由 Qt 公司维护,它是 Qt 框架的另一 个 Python 绑定。PySide2 是针对 Qt 5 的版本,而 PySide6 是针对最新 Qt 6 版本的 Python 绑定。PySide是跨平台的图形使用界面框架Qt的Python版本。提供和PyQt 类似的功能,并兼容API。但与PyQt不同处为使用LGPL许可。他是一个专门用于创建 GUI的库,可以在Python中使用,也可以在不同的操作系统上使用 (linux&windows)。此外大多数的DCC软件都使用它,比如Maya、houdini和 Blender等。Pyside基于QT的C++框架。

2.2、Pyside与PyQt的区别

2.2.1、许可协议

        PyQt5 提供了两种许可选项:GPL 和商业许可。使用 GPL 许可证时,你的应用 程序必须开源;如果选择商业许可,则需要付费。

        PySide采用LGPL(GNU Lesser General Public License)开源协议,LGPL是一 个较为宽松的开源协议,与 GPL 相比,它允许商业软件在不公开源代码的情况下 使用 LGPL 许可的库。这意味着你可以使用 PySide 来开发商业应用程序,而不 必开源你的整个应用程序,只需确保对 PySide 本身所做的任何修改是开源的。

2.2.2、开发和维护

PySide 由 The Qt Company 维护,它是 Qt 框架的官方 Python 绑定。

PyQt5 由 Riverbank Computing 维护,它是一个第三方解决方案。

2.2.3、API 兼容性

        PySide 和 PyQt5的 API 非常相似,但并不完全相同。在某些情况下,类名、方法 名或参数可能会有所不同。因此,从一个库迁移到另一个库可能需要一些代码修 改。

2.2.4、性能

        在性能方面,PySide 和 PyQt5 通常非常相似,因为它们都依赖于相同的 Qt 库。 但是,具体性能可能会因实现细节和优化而有所不同。

三、PyQT的安装

pip install PyQt5==5.15.2  -i https://pypi.tuna.tsinghua.edu.cn/simple 

四、PyQT工具的导入配置

4.1、 PyQT工具

        PyQt Tools 是 PyQt 框架提供的一组工具,主要用于辅助 PyQt 应用程序的开发和设计 

pip install PyQt5-tools==5.15.9.3.3  -i https://pypi.tuna.tsinghua.edu.cn/simple 

PyQt Tools 中常见的工具: 

 1. Qt Designer: 这是一个可视化的用户界面设计器,允许开发者通过拖放方式设 计和布局应用程序的界面。设计好的界面可以保存为.ui 文件,然后可以使用 pyuic 工具将其转换为相应的 Python 代码,以便在 PyQt 应用程序中使用。

2. PyUIC: 这是一个用于将 Qt Designer 设计的 .ui 文件转换为对应的 Python 代 码的命令行工具。通过这个工具,可以将可视化设计的用户界面集成到 PyQt 项 目中。

3. PyRCC: 用于将 Qt 资源文件 (.qrc) 编译成 Python 模块的工具。Qt 资源文件可 以包含图像、文本文件等,通过编译可以将这些资源文件嵌入到 PyQt 应用程序 中,方便统一管理。

4. Pylupdate: 用于更新 Qt 项目的翻译文件 (.ts)。这在多语言支持的应用程序中 很有用,可以提供不同语言的界面翻译。

4.2、PyQT工具在Pycharm中配置 

在 PyCharm 中导入 PyQt 工具通常是通过设置外部工具(External Tools)来完成 的。 

1. 打开 PyCharm: 打开你的 PyCharm IDE。

2. 进入设置(Settings): 在顶部菜单栏中,选择 "File" -> "Settings"(在 macOS 上是 "PyCharm" -> "Preferences")。

3. 选择 External Tools: 在设置窗口左侧的导航栏中,展开 "Tools" 节点,并选择 "External Tools"。

4. 添加外部工具: 在右侧窗格中,点击 "+"(添加)按钮,然后选择 "Program"。

5. 填写外部工具信息: 在弹出的对话框中,填写以下信息:

        Name(名称): 工具的名称,例如 "pyuic" 或 "Qt Designer"。

        Group(组): 可选,可以将工具分组,这样可以更好地组织工具列表。

        Description(描述): 工具的描述,用于说明工具的作用。

        Program(程序): 工具的可执行文件路径。例如,对于 pyuic,你需要指定 它的完整路径,通常是在虚拟环境中的 Scripts(Windows)或 bin (Linux/Mac)目录中。

        Arguments(参数): 传递给工具的参数。对于 pyuic,这可能是一些选项和 输入文件的路径。

        Working Directory(工作目录): 工具运行时的工作目录,通常可以设置为 你的项目根目录。 

Qt Designer,图形化布局工具: 

D:\Anaconda3\envs\over_project\Lib\site-packages\qt5_applications\Qt\bin\designer.exe

                                                                                (程序路径:填写自己的该程序的位置

$FileDir$ (当前文件夹)

$ProjectFileDir$ (绝对路径)

 

PyUIC,图形界面转py: 

D:\Anaconda3\envs\over_project\Scripts\pyuic5.exe

                                                                                (程序路径:填写自己的该程序的位置

$FileName$ -o $FileNameWithoutExtension$.py (当前文件转为.py文件)

$FileDir$ 

 

Pyrcc ,资源转py: 

D:\Anaconda3\envs\over_project\Scripts\pyrcc5.exe

                                                                                (程序路径:填写自己的该程序的位置

$FileName$ -o $FileNameWithoutExtension$_rc.py (当前文件转为.py文 件) 

$FileDir$ 

 

五、第一个pyqt程序界面

python">import sys
from PyQt5.QtWidgets import QApplication,QWidgetif __name__ == '__main__':app = QApplication(sys.argv)  # 创建QApplication对象,接受命令行参数windows = QWidget()  # 创建一个QWidget窗口对象windows.setWindowTitle('第一个PyQt程序')  # 设置窗口标题为'第一个PyQt程序'windows.show()  # 显示窗口app.exec()  # 启动应用程序事件循环  

六、思维导图


http://www.ppmy.cn/news/1571889.html

相关文章

ONES 功能上新|ONES Copilot、ONES TestCase、ONES Wiki 新功能一览

ONES Copilot 支持基于当前查看的工作项相关信息,利用 AI 模型,在系统中进行相似工作项的查找,包括基于已关联工作项的相似数据查找。 应用场景: 在查看工作项时,可利用 AI 模型,基于语义相似度&#xff0c…

能否详细讲解uni.request的各种参数和用法?

uni.request 是 Uni-App 提供的用于进行网络请求的 API,支持多种请求方式(如 GET、POST 等),并且可以处理请求的参数、头部、超时等设置。以下是对 uni.request 的各种参数和用法的详细讲解。 1. 基本用法 uni.request 的基本用…

今日AI和商界事件(2025-02-13)

今日AI领域的主要事件包括: 一、OpenAI相关动态 取消独立发布o3模型计划: OpenAI首席执行官奥尔特曼宣布,公司取消独立发布o3模型的计划。未来几个月内,OpenAI将推出GPT-5,该模型将整合多项技术,并应用于C…

回环地址127.0.0.1跟自身IP有什么区别?

区别比较显著: 1.从定义上看: 127.0.0.1:这个地址被称为回环地址(Loopback Address),是用于本地通信的特殊IP地址,指向计算机自身。它用于测试和调试网络应用程序,无论设备是否连接…

YOLOv8

模型架构 代码 起初在看yolov8的官方代码时我一头雾水,后来出于想要修改yolov8模型的目的,来摸索yolov8模型架构定义过程。 模型构成 结合框架图可以看到,yolov8的模型由Backbone,Head组成,也有文章将Head除Detect的…

香橙派plus5换开机图标、用户名

1-换开机logo 首先是换开机logo,可以参考官方文档 开机 logo 图片在 linux 系统中的位置为 /usr/share/plymouth/themes/orangepi/watermark.png替换开机 logo 图片后需要运行下命令才能生效 sudo update-initramfs -u2-换用户名、主机名 不知道什么是ubuntu主机…

考研操作系统----操作系统的概念定义功能和目标(仅仅作为王道哔站课程讲义作用)

目录 操作系统的概念定义功能和目标 操作系统的四个特征 操作系统的分类 ​编辑 操作系统的运行机制 系统调用 操作系统体系结构 操作系统引导 虚拟机 操作系统的概念定义功能和目标 什么是操作系统: 操作系统是指控制和管理整个计算机系统的软硬件资源&…

树莓集团:从区域到全国,数字产业园服务如何有效赋能企业?

树莓集团从区域发展起步,逐步迈向全国,其数字产业园服务在赋能企业方面有着独特的路径。 在区域发展阶段,树莓集团深入了解当地企业的需求和特点,为企业量身定制服务方案。例如,针对当地传统制造业企业,提…