【PyQT5教程】-01入门PyQT5

news2024/12/28 20:57:42

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

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

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

相关文章

适用于Linux的Windows子系统(系统安装步骤)

目录 前言 一、WSL2安装 1.Microsoft参考文档(推荐选择旧版 WSL 的手动安装步骤) 2.开启子系统 二、Ubuntu安装 1.在Microsoft Store中获取ubuntu 2.运行ubuntu配置管理信息 3.ubuntu换源 三、WSL 与 Ubuntu的一些基础使用命令 四、Windows Terminal终端…

linux安装postgresql13

linux安装postgresql13 1. 安装2. 数据库初始化3.配置远程访问3.1 修改配置文件3.2 重启服务3.3 测试连接 1. 安装 linux下载链接:https://www.postgresql.org/download/linux/ubuntu/安装命令sudo sh -c echo "deb https://apt.postgresql.org/pub/repos/apt…

Qt-QTransform-内存结构-仿射变换-工作原理-C++

文章目录 1.概述2.内存结构3.矩阵乘法4.map函数5.QPaint-setWorldTransform6.总结 1.概述 QTransform是Qt中推荐的矩阵变换类。转换指定如何平移,缩放,剪切,旋转或投影坐标系,通常在渲染图形时使用。QTransform类支持矩阵乘法&am…

业务自动化工具Automatisch

什么是 Automatisch ? Automatisch 是一种开源的 Zapier 替代业务自动化工具,可让您连接不同的服务,如 Twitter、Slack 等,以自动化您的业务流程。您可以使用 Automatisch 构建工作流程自动化,而无需花费时间和金钱。也…

【大虾送书第八期】揭秘分布式文件系统大规模元数据管理机制——以Alluxio文件系统为例

目录 ✨写在前面 ✨分布式文件系统元数据的常见类型 🍓文件(inode)元数据 🍓数据块(block)元数据 🍓MountTable 🍓Worker元数据 ✨分布式文件系统元数据的存储模式 🍓元数…

手写RPC框架--8.压缩报文

RPC框架-Gitee代码(麻烦点个Starred, 支持一下吧) RPC框架-GitHub代码(麻烦点个Starred, 支持一下吧) 压缩报文 对报文进行压缩a.报文压缩b.负载均衡c.使用模板方法优化负载均衡d.一致性hash-负载均衡算法d.1) 介绍d.2) 实现 e.实现心跳检测f.最短响应时间的负载均衡策略 对报文…

vue 将public文件下的图片引入.vue文件内

data() {return {publicPath:process.env.BASE_URL,} }<div :style"{backgroundImage: url(${publicPath}images/tradingRegular_images/rectBg.png)}">11 </div>

从一个向量类中理解Python 中的特殊方法(__init__、__getitem__、__len__、__repr__、__str__)

文章目录 前言一、init、getitem、len、repr、str解释二、向量案例1.实现属于我们自己的向量2.导入向量模块 前言 特殊方法是一种具有特殊命名约定的方法&#xff0c;用来定义类的行为与功能。当满足特定条件时&#xff0c;这些方法会被自动调用&#xff0c;从而实现一些内置的…

Splunk Enterprise for Mac:卓越的数据分析与管理工具

在当今的数字化时代&#xff0c;数据已经成为企业成功的核心驱动力。然而&#xff0c;如何有效地管理和分析这些数据&#xff0c;却常常让企业感到困惑。Splunk Enterprise for Mac 是一款领先的数据分析和管理工具&#xff0c;可以帮助你解决这一难题。 Splunk Enterprise fo…

Nginx(动静分离、分配缓冲区、资源缓存、防盗链、资源压缩、IP黑白名单、大文件传输配置、跨域配置、高可用、性能优化)

Nginx&#xff0c;负载均衡&#xff0c;Http反向代理服务器&#xff0c;支持大部分协议&#xff0c;如TCP、UDP、SMTP、HTTPS 环境搭建 Nginx反向代理-负载均衡 首先通过SpringBootFreemarker快速搭建一个WEB项目&#xff1a;springboot-web-nginx&#xff0c;然后在该项目中&…

适用于Linux的Windows子系统(在VScode中开发Linux项目)

目录 前言 一、VScode扩展安装 二、挂载项目 1.连接 2.挂载&#xff08;挂载之后项目终端就是Linux了&#xff09; 3.愉快的搬砖开始了 4.前端如何通过内网 IP 本地访问到 Ubuntu 上&#xff1f; 总结 前言 系列分为三章&#xff08;从安装到项目使用&#xff09;&…

云端AI:释放企业创新力,打造智慧企业

文章目录 1. 云端AI的基本概念1.1 云计算1.2 人工智能1.3 云端AI 2. 云端AI的重要性2.1 成本效益2.2 弹性扩展2.3 无缝整合2.4 实时更新 3. 云端AI的应用领域3.1 智能客服3.2 预测分析3.3 自动化生产 4. 云端AI的未来趋势4.1 边缘计算与云端AI的融合4.2 可解释性AI4.3 隐私和安…

ORACLE的分区(一)

目录 一、分区概念 二、表分区的优点 三、分区策略 一、分区概念 随着时间的发展&#xff0c;一个表的数据会越来越多&#xff0c;当数据量增大的时候我们一般采取建立索引优化索引的方式提高查询速度&#xff0c;但是数据量再次增大即使是索引也无法提高速度&#xff0c;这时…

从金蝶云星空到聚水潭通过接口配置打通数据

从金蝶云星空到聚水潭通过接口配置打通数据 源系统:金蝶云星空 金蝶K/3Cloud&#xff08;金蝶云星空&#xff09;是移动互联网时代的新型ERP&#xff0c;是基于WEB2.0与云技术的新时代企业管理服务平台。金蝶K/3Cloud围绕着“生态、人人、体验”&#xff0c;旨在帮助企业打造面…

代码随想录Day_59打卡

①、下一个更大元素Ⅱ 给定一个循环数组 nums &#xff08; nums[nums.length - 1] 的下一个元素是 nums[0] &#xff09;&#xff0c;返回 nums 中每个元素的 下一个更大元素 。 数字 x 的 下一个更大的元素 是按数组遍历顺序&#xff0c;这个数字之后的第一个比它更大的数&am…

REST风格【SpringBoot】

1.REST简介 行为动作 通常模块名使用复数&#xff0c;也就是加s 2.RESTful入门 Controller public class UserController {RequestMapping(value "/users", method RequestMethod.POST)public String save() {System.out.println("user save");return &…

pcie 总结

用户空间pci 常用命令 lspci 查看所有pci 设备 lspci -t 树形查看所有设备 lspci -s 00:1f.6 -vvv 查看某个设备所有信息 lspci -s 00:1f.6 -vvv -xxx 增加16进制看看 sudo cat /proc/iomen | grep PCI 查看所有地址映射 如何确定pcie io空间 内存空间大小 (1)读取出基地址…

视频监控/安防监控/AI视频分析/边缘计算/TSINGSEE青犀AI算法智慧仓储解决方案

随着全球经济与科学技术的双重推动&#xff0c;我国的仓储管理已经进入了高速发展时期&#xff0c;物流仓储也由简单的储藏仓库向智能化仓储转变。TSINGSEE青犀AI智慧仓储解决方案是利用先进的信息技术和物联网技术来提高仓储管理效率、降低成本的一种仓储管理模式。 方案功能 …

如何使用PyTorch训练LLM

推荐&#xff1a;使用 NSDT场景编辑器 快速搭建3D应用场景 像LangChain这样的库促进了上述端到端AI应用程序的实现。我们的教程介绍 LangChain for Data Engineering & Data Applications 概述了您可以使用 Langchain 做什么&#xff0c;包括 LangChain 解决的问题&#xf…

Facebook营销攻略:教你集中管理Facebook Business专页及广告

Facebook 在社交媒体间是无人不识的「霸主」&#xff0c;占据着主导地位&#xff0c;2020年 Facebook 创造了 859亿美元的收入&#xff0c;当中有大约600亿美元来自 Facebook 的应用程序&#xff0c;而 Facebook App 已被下载超过50亿次。作为全球最大型的社交媒体公司之一&…