当前位置:网站首页>PyQt5快速开发与实战 第1章 认识PyQt5
PyQt5快速开发与实战 第1章 认识PyQt5
2022-07-26 10:54:00 【Ding Jiaxiong】
PyQt5快速开发与实战
文章目录
1. 第1章 认识PyQt5
1.1 PyQt框架简介
图形用户界面 → GUI
GUI是 Graphical User Interface的英文简称,即图形用户界面,准确地说,GUI就是屏幕产品的视觉体验和互动操作部分。GUI是一种结合计算机科学、美学、心理学、行为学及各商业领域需求分析的人机系统工程,强调人—机-环境三者作为一个系统进行总体设计。
PyQt:
PyQt是一个用于创建GUI应用程序的跨平台的工具包,它将Python编程语言和Qt库成功融合在一起。Qt库是目前最强大的 GUI库之一。
开源软件需要解决的最大问题是如何处理开发者使用开源软件来完成个人或商业目标的情况,其中包括版权与收益的问题。当一个软件开发者打算将自己写的代码开源时,通常选择自由软件协议,即 GPL (GNU General Public License,GNU通用公共许可证)。因此,PyQt 5选择了GPL 协议,所以开发者可以放心使用 PyQt 5开发软件。
1.1.1 PyQt5的特点
- 基于高性能的Qt的GUI控件集
- 能够跨平台运行在Windows、Linux和Mac OS等系统上。
- 使用信号/槽 (signal / slot)机制进行通信
- 对Qt库的完全封装
- 可以使用Qt成熟的IDE进行图形界面设计,并自动生成可执行的Python代码
- 提供了一整套种类繁多的窗口控件。
1.1.2 Qt与PyQt的关系
- PyQt是Qt框架的 Python语言实现。
- 在开发速度上,由于PyQt的核心就是Qt库,也是用C++编写的,所以即使逻辑代码运行速度慢一点,也不会成为性能瓶颈。
- PyQt向 Python程序员提供了使用完整的Qt应用程序接口的函数,几乎可以用 Python做任何Qt能做的事。
1.1.3 其他图形界面开发库介绍
Tkinter
Tkinter是绑定了Python的Tk GUI工具集,就是Python包装的Tcl代码,通过内嵌在Python解释器内部的Tcl解释器实现。将Tkinter的调用转换成Tcl命令,然后交给Tcl解释器进行解释,实现Python的GUI。
wxPython
wxPython是 Python对跨平台的GUI工具集wxWidgets(用C++编写)的包装,作为Python的一个扩展模块来实现。
PyGTK
PyGTK 是 Python对GTK+GUI库的一系列包装。
PySide
PySide是 Python对跨平台的GUI工具集Qt 的另一个包装,捆绑在Python当中。
1.1.4 PyQt4 / PyQt5
PyQt5不再向下兼容使用PyQt 4编写的程序,因为 PyQt5有如下几个较大的改变。
- PyQt 5不再对 Python 2.6以前的版本提供支持,
- PytQt5对一些模块进行了重新构建,一些旧的模块已经被舍弃
- PyQt5所使用的OtWebKitWidgets模块(PyQt 5.7 以上版本)是谷歌团队开发的chromium内核引擎,由于更新维护速度很快,基本上完美支持互联网的新生事物。
- PyQt 5仅支持新式的信号和槽,对旧式的信号和槽的调动将不再支持
- PyQt 5不支持在Qt 5.0中标记为已放弃或过时的 Qt API部分
- PyQt 5在程序需要时才释放GIL
1.1.5 Python2 与 Python3
PyQt5使用Python3的原因:
- Python 2的绝大部分框架都提供了对Python 3的支持,并且一些新框架如 TensorFlow等只提供了对Python 3的支持。
- 对于Python 2官方只支持到2020年,而 PyOt 5是一个新框架,新框架往往不会对即将被淘汰的语言提供太多的支持。
- Python 3默认使用UTF-8编码,对中文字符串无缝兼容。
- 使用Python 3开发PyQt 5,不用考虑中文编码的问题。
- PyQt 5官方默认只提供对Python3的支持
1.2 PyQt5环境搭建
1.2.1 在Windows下的搭建PyQt5环境
安装Python3运行环境
笔者这里直接创建虚拟环境了
Python版本选择了3.8

安装PyQt5
pip install PyQt5 -i https://pypi.tuna.tsinghua.edu.cn/simple
安装PyQt5-tools
pip install PyQt5-tools -i https://pypi.tuna.tsinghua.edu.cn/simple
测试
import sys from PyQt5 import QtWidgets,QtCore app = QtWidgets.QApplication(sys.argv) widget = QtWidgets.QWidget() widget.resize(360,360) widget.setWindowTitle("Hello,PyQt5") widget.show() sys.exit(app.exec_())
1.2.2 在Mac OS下搭建PyQt5环境
- 安装Qt
- 安装Python
- 安装SIP
- 安装PyQt
- 测试
1.2.3 PyQt5 的安装测试
help(PyQt5)

1.2.4 安装其他Python模块
安装matplotlib

1.2.5 使用PyQt5的API文档
方法1:通过命令查看PyQt5类和对象的所有属性
方法2:查看在线帮助文档
https://www.riverbankcomputing.com/static/Docs/PyQt5/
1.3 Eric 6的安装和使用
一个Python编辑器和IDE,用Python写的,这里笔者就不装了

点击按钮后,窗口关闭。
边栏推荐
- Wechat official account development obtains openid times error 40029 invalid code solution
- win10 1903 笔记本开热点出现蓝屏问题
- ThreadPoolExecutor是怎样执行任务的
- MySQL quick learning notes-2021-08-31
- Drbl diskless startup + Clonezilla network backup and restore system
- C#委托与匿名方法浅析
- How to assemble a registry?
- Pengge C language 20210811 program structure operation
- Minesweeping Pro version 2021-08-19
- 35. 搜索插入位置
猜你喜欢
随机推荐
Bash shell学习笔记(五)
Kali view IP address
MySQL learning notes
RT thread learning notes (VII) -- open the elmfat file system based on SPI flash (middle)
C#halcon用户控件崩溃的一种处理方法
ESXi6.5补丁更新
c 语言中宏参数的字符串化跟宏参数的连接
-bash: ./build.sh: /bin/bash^M: 坏的解释器: 没有那个文件或目录
Novice source code hashtable
看源码之LinkedList
postman 导出导入
C language pengge 20210812c language function
企鹅龙(DRBL)无盘启动+再生龙(clonezilla)网络备份与还原系统
Capture ZABBIX performance monitoring chart with selenium
菜鸟看源码之ArrayList
MySQL quicklearn-2021-09-01
win10 1903 笔记本开热点出现蓝屏问题
Visual conversion of nmap vulnerability scanning results
由浅入深搭建神经网络
公司项目中的biz层和manager层是干啥的









