【PyQT5教程】-01入门PyQT5

2023-11-16

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/simple
        http://pypi.mirrors.ustc.edu.cn/simple/
 
[install]
trusted-host=
        pypi.tuna.tsinghua.edu.cn
        mirrors.aliyun.com
        pypi.douban.com
        pypi.mirrors.ustc.edu.cn

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

pip install list

在这里插入图片描述

PyQT第一个案例

import sys

from PyQt5.QtWidgets import QApplication, QWidget

if __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

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

【PyQT5教程】-01入门PyQT5 的相关文章

随机推荐

  • Java-线程通信

    Java 线程通信 1 线程通信中的三个方法 wait 一旦执行此方式 当前线程就进入阻塞状态 并释放线程锁 notify 一旦执行此方法 就会唤醒被wait的一个线程 如果有多个线程被wait 就唤醒优先级高的那个线程 notifyAll
  • java swing结构,Java Swing的层次结构理解

    一 什么是Java Swing Swing 是一个用于开发Java图形界面应用程序的开发工具包 它是以抽象窗口工具包 AWT Abstract Window Toolkit 为基础 使跨平台应用程序可以使用任何可插拔的外观风格 通常把AWT
  • oracle 的 start with connect by 用法 .

    分类 oracle java 2012 11 27 17 38 489人阅读 评论 0 收藏 举报 目录 ORACLE Connect ByLevelStart With的使用Hierarchical query 层次查询 connect
  • 一张图解释什么是遗传算法_遗传算法总结(#看了就能懂和用系列#)

    Word害我重写 顺便重新整理下思路 背景 写论文时用到遗传算法 花了近一周时间 还算理解了算法以及能够进行基础的编程实现 保持谦虚 说明 具体的实现没敢细讲 主要是原理的方法上的介绍 讲解都算不上 先说说算法学习 个人觉得首先需要了解这个
  • SpringBoot--Eureka

    SpringBoot Eureka 项目一 使用Eureka注册服务 任务一 搭建Maven父工程 任务二 搭建服务端工程 任务三 搭建客户端工程 项目二 实现服务间的调用 任务一 搭建订单服务工程 任务二 编写用户服务功能 任务三 启动服
  • buuctf-loveSQL

    进入界面 没有什么明显的提示 上次有个一样界面的题目 结果直接万能密码1 1出来了 这次再试试 啥 简单的我有点不相信 睿智的我一下子就觉得不对经 去尝试一下MD5 就知道 算了 接着找吧 看题目名字 lovesql 估计还是注入 只能把目
  • lol 那个服务器最稳定,lol哪个区的人多,哪个区的技术最好?

    每日科技网 一直都有 一区的螃蟹能走位单杀打野 郊区王者打不过一区钻石 的搞笑言论 其实这个言论有一定的是事实依据 虽然有一点夸张 说的神乎其神的 电信一区艾欧尼亚在LOL中的地位是大家有目共睹的 而之所以会出现那样的畸形观点 主要呢有以下
  • js获取昨天/明天、本周/上周/下周、本月/上月、本季度/上季度、上一年的开始/结束日期

    一 获取昨天 明天的日期 该方法参数如果为true 则获取昨天日期 反之为明天日期 默认为true function getYestDayOrNextDay flag true 获取当前日期 const today new Date 计算前
  • 代码检视(一)

    一 意义 最大的意义 通过代码检视 发现问题 解决问题 并且能够有效地提升自己 最终达到写出优质代码 提高代码质量 成功做好项目 二 基本要求 一 逻辑一定要正确 逻辑错误非常容易引起BUG 二 避免一些没必要的代码 能用一句解决的就不要用
  • XMLSocket

    XMLSocket 协议是flash的长连接消息协议 XMLSocket协议规则 每个 XML 消息都是一个完整的XML文档 一定要以 0 结束 html5 websocket是长连接传输的是精简的http报文 XMLSocket conn
  • 【UE4】复杂背景人像抠图-飞浆AI-paddlepaddle深度训练模型

    前言 运用到Python3 7 UEC 蓝图 实现复杂背景人物使用PaddleHub深度训练模型进行抠像后在UE中使用 纯色背景人物仅材质就可实现 使用到的训练模型 deeplabv3p xception65 humanseg 1 准备工作
  • 【私有云平台的搭建——vSphere Client 的安装与配置】

    目录 vSphere Client 的基本操作 Step 1 使用 vSphere Client 安装虚拟机 Step 2 使用 vSphere 客户端在 ESXi 创建虚拟机 Step 3 点击 New Virtual Machine S
  • Idea启动报错idea start failed -org.picocontainer.PicoContainer com.intellij.openapi.application.Applicat

    org picocontainer PicoContainer com intellij openapi application Application getPicoContainer ror Please refer to https
  • Android编译详解之lunch命令

    Android的优势就在于其开源 手机和平板生产商可以根据自己的硬件进行个性定制自己的手机产品 如小米 LePhone M9等 因此 在我们在对Android的源码进行定制的时候 很有必要了解下 Android的编译过程 如果你从来没有做过
  • 技术人员的赚钱之道-2:做个现代的“六化”程序员

    六化 像是一面黑夜中的灯塔 在黑暗指明方向 六化 可是现代程序员具备的能力水平 六化 也可以是程序员轻创业的方式 什么是六化 专业化 数字化 自动化 虚拟化 云化 智能化 1 专业化 专业化是程序员的基础 懂得编程或某个专业领域的技术 2
  • Ubuntu20.04 LTS 安装GCC11.2教程,包教包会!

    GCC 11 2 安装 其他版本 如9 5 12 1等都可以用同样方法编译安装 但是依赖包不一样 需要到gcc官网下载对应的依赖包和源码包 前置条件 首先把Ubuntu提供的各种构建工具都给他装上 sudo apt install buil
  • 好分数阅卷3.0_揭秘!自考阅卷的批改套路!

    距离2019年4月自考仅剩 13 天 每当考试之后有小伙伴就有这样的感受 自己感觉这次可以 及格没问题 但是最后却是差了几分 也有人说 我都抄到了标准答案 为什么是56分 56分啊 难道自考真的有所谓的过关率 阅卷老师真的有刻意在压低分数
  • C++顺序表的构建(用数组存储数据)

    这是最简单的顺序表 顺序表中的元素都存储在数组T data中 const int defaultSize 100 template
  • 3399的-mipi适应多个lcd屏显示-后续2-linux内核中的修改

    一 前提 1 rk3399核心板 2 linux4 4 19 源码 3 多个MIPI显示屏的启动序列以及显示时序 重要 4 rk3399MIPI通道0 5 接上一个uboot中的修改配置 二 内核驱动的修改 0 dts就不再给出了 请参考u
  • 【PyQT5教程】-01入门PyQT5

    PyQT介绍 1 Qt 1 1 介绍 Qt 读作 cute 是一个跨平台的C 应用程序开发框架 最初由挪威公司Trolltech 现在是Qt公司的一部分 开发 Qt提供了一系列工具和类库 用于开发图形界面应用程序 命令行工具和服务器端应用程