当前位置: 首页 > news >正文

【PyQT5教程】-01入门PyQT5

PyQT介绍

1.Qt

在这里插入图片描述

1.1 介绍

Qt(读作“cute”)是一个跨平台的C++应用程序开发框架,最初由挪威公司Trolltech(现在是Qt公司的一部分)开发。Qt提供了一系列工具和类库,用于开发图形界面应用程序、命令行工具和服务器端应用程序,它在不同的操作系统上具有高度的可移植性。

以下是Qt框架的一些主要特点和组成部分:

  1. 跨平台性: Qt的核心特点之一是其跨平台能力。开发者可以编写一次代码,然后在不同的操作系统上编译和运行,如Windows、macOS、Linux以及一些嵌入式系统。

  2. 图形界面设计: Qt提供了丰富的图形界面设计工具,允许开发者使用所见即所得(WYSIWYG)的方式创建用户界面。开发者可以使用Qt的图形界面设计器来拖拽和放置各种UI元素,然后使用C++代码进行逻辑编程。

  3. 信号与槽机制: Qt引入了一种独特的通信机制,称为信号与槽(Signals and Slots)。这个机制使得不同组件之间的交互更加灵活和解耦,从而简化了代码的维护和扩展。

  4. 模块化结构: Qt框架由多个模块组成,每个模块专注于不同的功能领域,如GUI、网络、数据库、多媒体、XML处理等。开发者可以根据需要选择性地使用这些模块,避免了不必要的代码依赖。

  5. 自动内存管理: Qt引入了称为“父子关系”的概念,通过这种关系,对象的内存管理可以更加自动化。当一个父对象被销毁时,它的所有子对象也会被自动销毁,从而避免了内存泄漏。

  6. 国际化和本地化支持: Qt具备强大的国际化和本地化支持,使开发者可以轻松地将应用程序本地化为不同的语言和地区。

  7. 商业和开源版本: Qt有商业许可和开源许可两种版本。开发者可以根据自己的需求选择适合的许可类型。开源版本下,开发者可以免费使用Qt进行开发,但需要遵守特定的开源许可条款。

Qt在许多领域得到了广泛的应用,包括桌面应用程序、移动应用程序、嵌入式系统、游戏开发等。由于其可移植性和强大的功能,Qt已经成为许多开发者的首选框架之一。

1.2 使用语言

  1. C++: C++是Qt的原生开发语言。Qt提供了丰富的C++类库和工具,使开发者能够轻松创建跨平台的图形界面应用程序。
  2. QML(Qt Meta-Object Language): QML是一种声明性的编程语言,用于创建图形界面的用户界面部分。它专注于界面元素的设计和布局,以及界面的交互。QML通常与C++结合使用,其中QML处理界面,而C++处理业务逻辑。
  3. Python: 通过Qt for Python(PyQt)或PySide,你可以使用Python语言开发使用Qt库的应用程序。这使得Python开发者能够利用Qt的功能来构建跨平台应用程序。
  4. JavaScript(在QML中): 在QML中,JavaScript用于处理界面的逻辑和交互。尽管这并不是传统意义上的Qt应用程序的主要开发语言,但它在QML界面中具有重要作用。
  5. 其他语言: 除了上述主要语言之外,Qt还有其他语言的绑定和接口,允许开发者使用不同的编程语言进行开发。这些语言可能包括Java、Ruby、C#等。

1.3 官网地址

https://doc.qt.io/qt-5/index.html

2.PyQt

2.1 介绍

PyQt是一个用于Python编程语言的Qt库的绑定。它允许开发者使用Python来创建图形界面应用程序,并利用Qt框架的功能和特性。Qt本身是一个C++应用程序开发框架,而PyQt则提供了Python语言的接口,使开发者能够在Python环境中轻松使用Qt的功能。

以下是关于PyQt的更详细介绍:

特点:

  1. 跨平台支持: 基于Qt的特性,PyQt也具有跨平台的能力,可以在多个操作系统上运行,包括Windows、macOS、Linux等。
  2. 丰富的UI控件: PyQt提供了丰富的UI控件,允许开发者创建各种复杂的用户界面。这些控件包括按钮、文本框、列表、表格、菜单等。
  3. 信号与槽机制: 与原生的Qt一样,PyQt支持信号与槽机制,使得不同部分之间的通信和交互变得更加灵活和解耦。这是PyQt中事件处理和交互的核心。
  4. QML支持: 类似于Qt,PyQt也支持使用QML语言创建界面。QML是一种声明性的语言,允许开发者通过简洁的语法来创建复杂的用户界面。
  5. 多媒体支持: PyQt提供了多媒体功能,包括音频和视频的播放、录制和处理。这使得开发者可以在应用程序中集成多媒体元素。
  6. 国际化和本地化: PyQt支持国际化和本地化,开发者可以轻松地将应用程序本地化为不同的语言和地区。

2.2 相关地址

文档相关地址: https://www.riverbankcomputing.com/software/pyqt/

比较不错的参考资料 : https://wiki.python.org/moin/PyQt/Tutorials

2.3 Python GUI开发选择

  1. Tkinter:
    • 简介:Python标准库中的GUI工具包,易于学习和使用,适用于简单的界面需求。
    • 官网:https://docs.python.org/3/library/tkinter.html
  2. PyQt:
    • 简介:Python的Qt库绑定,功能强大,适用于创建复杂的图形界面应用程序。
    • 官网:https://riverbankcomputing.com/software/pyqt
  3. PyGTK:
    • 简介:Python的GTK+库绑定,适用于Linux和Unix系统,提供丰富的控件和功能。
    • 官网:https://pygtk.org/
  4. wxPython:
    • 简介:Python的wxWidgets库绑定,适用于多种操作系统,具有本地外观和感觉。
    • 官网:https://wxpython.org/
  5. Kivy:
    • 简介:用于创建多点触控应用程序的Python库,适用于移动应用和触摸屏界面。
    • 官网:https://kivy.org/
  6. PySide:
    • 简介:Qt库的另一个Python绑定,用于创建强大的跨平台GUI应用。
    • 官网:https://wiki.qt.io/PySide
  7. FLTK:
    • 简介:C++图形库FLTK的Python绑定,适用于需要简洁用户界面的应用。
    • 官网:https://www.fltk.org/
  8. Dear PyGui:
    • 简介:现代Python GUI框架,支持GPU渲染,用于数据可视化和科学应用。
    • 官网:https://dearpygui.org/
  9. BeeWare:
    • 简介:一组工具和库,允许在Python中编写跨平台应用,包括Toga和其他工具。
    • 官网:https://beeware.org/

安装方法

1.PyCharm安装方法

确定pycharm是使用管理员权限开启的

在这里插入图片描述

1.1 新建一个Python项目

在这里插入图片描述

检查项目工具

在这里插入图片描述

1.2 安装pyQT5

pip install pyqt5 -i https://pypi.tuna.tsinghua.edu.cn/simple
pip install pyqt5-tools -i https://pypi.tuna.tsinghua.edu.cn/simple

在这里插入图片描述

1.3 pip镜像源

阿里云 https://mirrors.aliyun.com/pypi/simple/
中国科技大学 https://pypi.mirrors.ustc,edu.cn/simple/
豆解(douban) https://pypi.douban.com/simple/
清华大学 https://pypi.tuna.tsinghua.edu.cn/simple/
中国科学技术大学 https://pypi.mirrors.ustc.edu.cn/simple/

1.4 修改电脑的pip镜像源

(1) C:\Users\你的管理员名称文件夹,创建一个pip文件夹

(2)创建一个pip.ini文件

(3)将以下代码复制黏贴到你的pip.ini文件中

[global]
timeout=40
index-url=https://pypi.tuna.tsinghua.edu.cn/simple/
extra-index-url=http://mirrors.aliyun.com/pypi/simple/http://pypi.douban.com/simplehttp://pypi.mirrors.ustc.edu.cn/simple/[install]
trusted-host=pypi.tuna.tsinghua.edu.cnmirrors.aliyun.compypi.douban.compypi.mirrors.ustc.edu.cn

(4) 验证你的pip配置是否正确

pip install list

在这里插入图片描述

PyQT第一个案例

import sysfrom PyQt5.QtWidgets import QApplication, QWidgetif __name__ == '__main__':# 1. 创建QT对象# sys.argv : python运行参数app = QApplication(sys.argv)# 创建一个控件对象w = QWidget()# 给控件设置标题w.setWindowTitle("第一个程序案例")# 显示控件w.show()# 开启一个QT程序app.exec_()

在这里插入图片描述

1.pyqt模块介绍

PyQt5是一个用于Python的Qt库绑定,提供了丰富的功能和工具,用于创建跨平台的图形界面应用程序。PyQt5分为多个模块,每个模块专注于不同的功能领域。以下是PyQt5的一些主要模块的简要介绍:

  1. QtCore:!!重要!!
    • 提供了Qt核心的非GUI功能,如事件循环、定时器、线程、信号和槽等。
    • 用于处理与GUI无关的任务,是其他模块的基础。
  2. QtGui:!!重要!!
    • 包含了许多与GUI相关的类,如绘图、颜色、字体、窗口管理、剪贴板等。
    • 提供了创建图形界面所需的基本组件和功能。
  3. QtWidgets:!!重要!!
    • 包含了各种UI控件,如按钮、文本框、标签、表格、列表、窗口等。
    • 用于创建用户界面的各种元素。
  4. QtMultimedia:
    • 提供了多媒体功能,包括音频和视频的播放、录制、处理等。
    • 允许在应用程序中集成多媒体元素。
  5. QtNetwork:
    • 用于网络编程,提供了TCP、UDP、HTTP等网络协议的支持。
    • 允许应用程序与远程服务器通信。
  6. QtSql:
    • 提供了数据库访问的类,可以与各种数据库进行交互。
    • 允许应用程序执行数据库查询、插入、更新等操作。
  7. QtXml:
    • 提供了处理XML数据的类,用于读取、写入和操作XML文件。
    • 适用于需要处理结构化数据的应用。
  8. QtWebEngine:
    • 提供了Web引擎功能,允许在应用程序中嵌入Web页面。
    • 可以用于创建内置的浏览器功能。
  9. QtPrintSupport:
    • 提供了打印支持,用于将应用程序的内容输出到打印机。
  10. QtOpenGL:
    • 提供了OpenGL集成,允许在应用程序中使用3D图形和渲染。
  11. QtTest:
    • 提供了单元测试的支持,用于测试应用程序的不同部分。

1.2 参考地址

可以参考PyQt官网的所有模块地址: https://www.riverbankcomputing.com/static/Docs/PyQt5/module_index.htmlfref-module-index

C++具体实现的API文档,地址 : https://doc.qt.io/gt-5/qtwidgets-module.html

http://www.lryc.cn/news/159585.html

相关文章:

  • 判断字符串s是否为字符串t的子序列
  • 数据结构之队列的实现(附源码)
  • [A题]2023 年全国大学生数学建模比赛思路、代码更新中.....
  • Tailwind 练手项目
  • SpringMVC_SSM整合
  • 【操作系统】电脑上没有IIS怎么办
  • 【vue】vue项目中批量下载文件并打压缩包
  • Linux中的软件管家——yum
  • 安卓绘制原理概览
  • 接口测试工具开发文档
  • 面试题速记:JavaScript有哪些数据类型,它们的区别是?
  • Spring Cloud面试题
  • 计算机网络自顶向下-web页面请求历程
  • 打造西南交通感知新范式,闪马智能携手首讯科技落地创新中心
  • Android11去掉Settings中的网络和互联网一级菜单
  • 基于Python开发的五子棋小游戏(源码+可执行程序exe文件+程序配置说明书+程序使用说明书)
  • JDBC入门到精通-10w总结
  • Linux之查看so/bin依赖(三十一)
  • day-45 代码随想录算法训练营(19)动态规划 part 07
  • static关键字和final关键字
  • 使用Postman如何在接口测试前将请求的参数进行自定义处理
  • QT第二天
  • 鸿蒙应用程序入口UIAbility详解
  • 扫地僧站群·静态养站王:自动万站智能LOGO功能说明
  • 【Day-32慢就是快】代码随想录-二叉树-合并二叉树
  • 接口测试系列 —— 什么是接口测试?
  • qt作业day2
  • JWT一篇通
  • 【2023-09-01】vue中自定义按钮设置disabled属性后,异常触发click事件
  • nginx报错file not found解决