PyQt5---初识PyQt5相关及开发实战介绍

什么是GUI

        GUI是Graphical User Interface(图形用户界面)的缩写,是一种用户与计算机交互的方式,通过使用图形化的元素(如按钮、窗口、菜单等)来帮助用户完成任务。GUI使得用户可以通过鼠标、键盘等输入设备与计算机进行交互,而不需要记住复杂的命令行操作。

        GUI的主要组成部分包括窗口、控件(组件)、布局管理器和事件处理器等。窗口是GUI应用程序的主要界面,控件是窗口中的各种元素,如按钮、文本框、标签等。布局管理器用于控制控件在窗口中的位置和大小,以便界面可以灵活地适应不同大小的窗口。事件处理器用于响应用户的操作,如点击按钮、输入文本等。

为什么要开发桌面应用

        桌面应用,也可以称为GUI应用,在Windows处于非常火爆的15年时间(19952010)里是非常火的,不过最近几年被Web应用和移动应用抢了风头。尽管Web和移动应用看似成为了现在的主流。但桌面应用目前仍然为很多类型应用的首选。移动应用由于屏幕太小,机器性能远低于同时代的PC机,所以至少目前来看,在短时间内移动应用是无法取代PC应用的,而在PC浏览器上运行的Web应用的主要优势是不需要安装,只要有浏览器就可以运行。

       但缺点也显而易见,Web应用在浏览器部分的逻辑代码通常都是由JavaScript语言编写的,运行效率比较低,而且Web应用是无法完全控制本机的硬件的,如摄像头,蓝牙设备,打印机、串口等,Web应用在用户体验上也不如同时代的桌面应用,而Web应用不擅长的事正好是桌面应用的强项,因此,在未来的几十年,桌面应用仍然会占有非常重要的地位。

GUI框架 

在GUI开发中,常用的工具和框架包括:

1.Qt:一个跨平台的GUI开发框架,提供了丰富的GUI组件和功能,PyQt、PySide等是基于Qt的Python库。

2.Tkinter:Python标准库中的GUI工具包,提供了简单的GUI组件和布局管理器,适用于快速开发简单的GUI应用程序。

3.wxPython:基于wxWidgets的Python GUI库,提供了丰富的跨平台GUI组件和功能。

4.Java Swing:Java语言的GUI工具包,提供了丰富的GUI组件和功能,适用于开发Java GUI应用程序。

5.PyGTK,是一个用于Python语言的GUI开发工具包,它是基于GTK+(GIMP Toolkit)库的Python绑定。GTK+是一个开源的跨平台的图形库,主要用于创建图形用户界面的程序,而PyGTK则提供了Python语言与GTK+库之间的接口,使得开发者能够使用Python语言来开发基于GTK+的GUI应用程序。

6.PySide是一个Python绑定的Qt库,用于创建跨平台的图形用户界面(GUI)应用程序。它允许开发者使用Python语言来访问Qt库的功能,从而能够快速、方便地开发功能强大的GUI应用程序。PySide最初是由Nokia开发并开源,后来由Digia继续维护和支持。

什么是Qt

        使用C++语言编写的跨平台GUI库,支持WindowsMac OS XLinux。由于Qt使用C++语言编写,所以使用Qt开发的GUI程序的界面风格与当前操作系统完全相同,而且运行效率很高。

GUI:带图形用户接口的程序,也就是我们经常说的桌面应用。

Qt的历史

        Qt是挪威的一家名为Trolltech(奇趣科技)的公司开发的一个C++ GUI工具集,其中包括跨平台类库、集成开发工具和跨平台IDE,既可以用于开发GUI程序,也可以用于开发非GUI程序。使用Qt开发的代码只需要在不同的操作系统平台上重新编译,就可以在该平台上运行。也就是说,用Qt开发的程序的跨平台模式是源代码级的。

     20086月,Trolltech公司被Nokia(诺基亚)收购,20128月,芬兰的Digia公司从Nokia收购了Qt业务。

Qt案例

什么是PyQt 

     PyQt是一个用于创建GUI应用程序的跨平台工具包,它将PythonQt库融为一体。也就是说,PyQt允许使用Python语言调用Qt库中的API。这样做的最大好处就是在保留了Qt高运行效率的同时,大大提高了开发效率。因为,使用Python语言开发程序要比使用C++语言开发程序快得多。PyQtQt做了完整的封装,几乎可以用PyQtQt能做的任何事情。

     由于目前最新的PyQt版本是5.11,所以习惯上成为PyQtPyQt5

     官网:https://riverbankcomputing.com/software/pyqt/

要学什么?

  • Qt Designer
  • PyQt5基本窗口控件(QMainWindowQwidgetQlabelQLineEdit菜单、工具栏等)
  • PyQt5高级组件(QTableViewQListView、容器、多线程等)
  • PyQt5布局管理(QBoxLayoutQGridLayoutQFormLayout、嵌套布局等)
  • PyQt5信号与槽(事件处理、数据传递等)
  • PyQt5图形与特效(定制窗口风格、绘图、QSSUI美化、不规则窗口、设置样式等)
  • PyQt5扩展应用(制作PyQt5安装程序、数据处理、第三方绘图库在PyQt5中的应用、UI自动化测试等)

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

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

相关文章

基类、接口、抽象类的区别

基类、接口和抽象类是面向对象编程中的三个重要概念,他们在定义和实现等方面有各自的特点,区别如下: 定义方面: 基类是一个普通的具体类,可以被实例化。 接口是一种规范(契约)或一组行为的集合…

二次开发shopify网站如何判断当前网址url

在Shopify中,要判断当前的URL,你可以使用Liquid模板语言来获取URL的各个部分,并进行相应的判断。 1、获取完整的URL: 使用{{ request.url }}可以获取当前页面的完整URL。2、获取URL的各部分: {{ request.path }}&am…

【C语言】整数存储、大小端概念

文章目录 整数存储大小端 整数存储 在计算机中,整数都是通过二进制保存的,不论是十六进制还是八进制还是十进制 整数的2进制表⽰⽅法有三种,即原码、反码和补码 对于整形来说:数据存放内存中其实存放的是补码 在计算机系统中&…

LinuxU盘挂载原理,为什么要用到U盘挂载及实现U盘挂载

目录 一、U盘挂载原理 二、为什么要用到U盘挂载 三、实现U盘挂载 一、准备工作 1、安装gcc 2、下载ntfs-3g 3、解压 4、编译准备 5、编译并安装 二、挂载演示 一、U盘挂载原理 Linux的U盘挂载原理涉及以下几个方面: 设备识别:当您将U盘插入Lin…

DVWA 靶场搭建

文章目录 环境说明1 DVWA 简介2 DVWA 安装 环境说明 操作系统:Windows 10PHPStudy 版本: 8.1.1.3Apache 版本:2.4.39MySQL 版本 5.7.26 1 DVWA 简介 DVWA(Damn Vulnerable Web App)是一个基于 “PHP MySQL” 搭建的Web应用程序&…

人工智能入门学习笔记2:人工智能发展史

2017年3月5日,中华人民共和国第十二届全国人民代表大会第五次会议上,李克强总理政府工作报告中提出。 2017年12月,人工智能入选“2017年度中国媒体十大流行语”。 入选理由:经过多年的演进,人工智能发展进入了新阶段…

基于微信小程序志愿者报名系统 (后台JSP+JDBC+Mysql)答辩常规问题和如何回答(答辩指导)

博主介绍:黄菊华老师《Vue.js入门与商城开发实战》《微信小程序商城开发》图书作者,CSDN博客专家,在线教育专家,CSDN钻石讲师;专注大学生毕业设计教育和辅导。 所有项目都配有从入门到精通的基础知识视频课程&#xff…

Linux多进程中wait()函数学习

wait()函数是Linux/Unix系统里的一个系统级函数&#xff0c;在C语言中通过#include <sys/wait.h>包含该系统调用的头文件。 想要查看如何使用这个函数&#xff0c;可以在终端中输入&#xff1a; man 2 wait如下图&#xff1a; wait系统调用可以让父线程阻塞等待子线程的…

DM数据库安装及使用(Windows、Linux、docker)

Windows 先解压安装包 点击setup安装 下一步 勾选接受然后下一步 下一步 选择典型安装下一步 下一步 搜索DM数据库配置助手然后一直下一步 然后搜索DM管理工具 登录 登录成功 widows版本安装成功 Linux安装 操作系统CPU数据库CentOS7x86_64 架构dm8_20230418_x86_rh6_64 …

liunx安装达梦教程

1.首先用户在安装 DM 之前需要检查或修改操作系统的配置&#xff0c;以保证 DM 正确安装和运行。 标题及下文中提到的 Linux(Unix)&#xff0c;包括 Linux、AIX、HP-UNIX、Solaris 和 FreeBSD 操作系统。以下安装程序说明将以 Red Hat Enterprise Linux 6 for x86-64 系统为…

CSS案例-1.字体样式练习

效果 知识点 字体大小font-size 相对长度单位 说明 em 相对于当前对象内文本的字体尺寸 px 像素,最常用,推荐使用 绝对长度单位 说明 in 英寸 cm 厘米 mm 毫米 pt 点 Unicode字体 字体名称 英文名称 Unicode编码 宋体 SimSun \5B8B\4F53 新宋体 NSimSun \65B0\5B8B\4F53

mac电脑解决无法打开软件

文章目录 报错内容解决方法一方法二方法三 报错内容 macOS无法验证此App是否包含恶意软件。 解决方法一 打开系统偏好设置>安全性与隐私>通用&#xff0c;这个时候有个按钮&#xff0c;“仍然允许”点击即可。 方法二 按住Control键点按应用, 然后打开&#xff0c…

网络编程:TCP和UDP

一、通信模式 1.1 套接字socket 1.网络通信通过套接字进行数据传输 2.socket是一个函数&#xff0c;为通信创建一个端点&#xff0c;并返回该端点的文件描述符 3.套接字本身是一个文件描述符&#xff0c;对应的是一个特殊的文件&#xff0c;该文件描述符维护了两个缓冲区&a…

淘宝详情接口

了解详情获取秘钥 待签名参数:{"uid": "", "ttid": "231200taobao_android_9.16.0", "data": "%7B%22itemNumId%22%3A%22638728868726%22%7D", "lng": "23.366706", "utdid": &qu…

MySQL一些命令记录

查看数据引擎 show engines;创建数据库,并选择库 CREATE DATABASE IF NOT EXISTS test_database; USE test_database;创建表 CREATE TABLE IF NOT EXISTS test_table (id INT AUTO_INCREMENT PRIMARY KEY,field1 VARCHAR(50),field2 VARCHAR(50),field3 VARCHAR(50),field4 …

【计算机网络】集线器

集线器&#xff08;HUB&#xff09;是一种计算机网络设备&#xff0c;用于连接多个计算机或其他网络设备并将它们组成一个局域网。通常是一个小型的硬件设备&#xff0c;包括多个网口&#xff0c;并使用电缆将这些网口连接到其他的网络设备上。 特点 物理层设备&#xff1a; …

PHP中的反序列化漏洞

PHP中的反序列化漏洞 目录 PHP 中的序列化与反序列化 概述 序列化 基本类型的序列化 对象的序列化 反序列化 示例序列化与反序列化 反序列化漏洞 - PHP 中的魔术方法 - Typecho_v1.0 中的反序列化漏洞 POP链的构造思路 pop链案例 反序列化逃逸 字符串逃逸&#xff…

MongoDB聚合运算符:$firstN 的数组操作

文章目录 语法使用举例 $firstN聚合运算符针对数组返回数组的前n个元素 语法 { $firstN: { n: <expression>, input: <expression> } }n为正整数表达式&#xff0c;指定要返回数组的前多少个元素input 为一个数组表达式&#xff0c;返回其前n个元素 使用 $firs…

Linux安装使用one-api 格式访问所有的大模型

One API ✨ 通过标准的 OpenAI API 格式访问所有的大模型&#xff0c;开箱即用 ✨ [!NOTE] 本项目为开源项目&#xff0c;使用者必须在遵循 OpenAI 的使用条款以及法律法规的情况下使用&#xff0c;不得用于非法用途。 根据《生成式人工智能服务管理暂行办法》的要求&#xff…

Android 音频系统

导入 早期Linux版本采用的是OSS框架&#xff0c;它也是Unix及类Unix系统中广泛使用的一种音频体系。 ALSA是Linux社区为了取代OSS而提出的一种框架&#xff0c;是一个源代码完全开放的系统(遵循GNU GPL和GNU LGPL)。ALSA在Kernel 2.5版本中被正式引入后&#xff0c;OSS就逐步…