19.md 4.8 KB
Newer Older
W
init  
wizardforcel 已提交
1 2 3 4 5 6 7 8
# PyQt5 简介

> 原文: [http://zetcode.com/gui/pyqt5/introduction/](http://zetcode.com/gui/pyqt5/introduction/)

这是 PyQt5 入门教程。 本教程的目的是帮助您开始使用 PyQt5 工具包。 该教程已在 Linux 上创建并测试。 [PyQt4 教程](http://zetcode.com/gui/pyqt4/)涵盖了 PyQt4,它是 Python 语言(2.x 和 3.x)与 Qt4 库的融合。

## 关于 PyQt5

W
wizardforcel 已提交
9
PyQt5 是 Digia 的一组 Qt5 应用框架的 Python 绑定。 它适用于 Python 2.x 和 3.x。 本教程使用 Python3。Qt 库是功能最强大的 GUI 库之一。 PyQt5 的官方主页是 [www.riverbankcomputing.co.uk/news](http://www.riverbankcomputing.co.uk/news) 。 PyQt5 由 Riverbank Computing 开发。
W
init  
wizardforcel 已提交
10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43

PyQt5 被实现为一组 Python 模块。 它具有 620 多个类和 6000 种功能和方法。 它是一个多平台工具包,可在所有主要操作系统(包括 Unix,Windows 和 Mac OS)上运行。 PyQt5 是双重许可的。 开发人员可以在 GPL 和商业许可之间进行选择。

## PyQt5 安装

```
$ sudo pip3 install pyqt5

```

我们可以使用`pip3`工具安装 PyQt5。

## PyQt5 模块

PyQt5 的类分为几个模块,包括以下模块:

*   QtCore
*   QtGui
*   Qt 小部件
*   Qt 多媒体
*   Qt 蓝牙
*   QtNetwork
*   Qt 定位
*   恩吉尼奥
*   QtWebSockets
*   QtWebKit
*   QtWebKitWidgets
*   QtXml
*   QtSvg
*   QtSql 的
*   QtTest

`QtCore`模块包含核心的非 GUI 功能。 该模块用于处理时间,文件和目录,各种数据类型,流,URL,mime 类型,线程或进程。 `QtGui`包含用于窗口系统集成,事件处理,2D 图形,基本图像,字体和文本的类。 `QtWidgets`模块包含的类提供了一组 UI 元素,以创建经典的桌面样式用户界面。 `QtMultimedia`包含用于处理多媒体内容的类和用于访问相机和收音机功能的 API。

W
wizardforcel 已提交
44
`QtBluetooth`模块包含用于扫描设备以及与它们连接和交互的类。 `QtNetwork`模块包含用于网络编程的类。 这些类通过使网络编程更加容易和可移植性,来简化 TCP / IP 和 UDP 客户端和服务器的编码。 `QtPositioning`包含用于通过使用各种可能的来源(包括卫星,Wi-Fi 或文本文件)确定位置的类。 `Enginio`模块实现了用于访问 Qt Cloud Services 托管应用运行时的客户端库。 `QtWebSockets`模块包含实现 WebSocket 协议的类。 `QtWebKit`包含基于 WebKit2 库的 Web 浏览器实现的类。 `QtWebKitWidgets`包含用于基于 WebKit1 的 Web 浏览器实现的类,以用于基于`QtWidgets`的应用。
W
init  
wizardforcel 已提交
45

W
wizardforcel 已提交
46
`QtXml`包含用于处理 XML 文件的类。 该模块提供了 SAX 和 DOM API 的实现。 `QtSvg`模块提供了用于显示 SVG 文件内容的类。 可伸缩向量图形(SVG)是一种用于描述 XML 中的二维图形和图形应用的语言。 `QtSql`模块提供用于处理数据库的类。 `QtTest`包含可对 PyQt5 应用进行单元测试的功能。
W
init  
wizardforcel 已提交
47 48 49 50 51 52 53

## PyQt4 和 PyQt5 的区别

PyQt5 与 PyQt4 向后不兼容。 PyQt5 有几个重大变化。 但是,将旧代码调整为新库并不是很困难。 除其他外,差异如下:

*   Python 模块已重新组织。 一些模块已删除(`QtScript`),其他模块已拆分为子模块(`QtGui``QtWebKit`)。
*   引入了新模块,包括`QtBluetooth``QtPositioning``Enginio`
W
wizardforcel 已提交
54
*   PyQt5 仅支持新型信号和槽 handlig。 不再支持对`SIGNAL()``SLOT()`的调用。
W
init  
wizardforcel 已提交
55 56
*   PyQt5 不支持 Qt v5.0 中标记为已弃用或过时的 Qt API 的任何部分。

W
wizardforcel 已提交
57
## Python
W
init  
wizardforcel 已提交
58

W
wizardforcel 已提交
59
![python logo](img/bcc161b3a545fd24eb44bc8a4bb5d41d.jpg) Python 是一种通用的,动态的,面向对象的编程语言。 Python 语言的设计目的强调程序员的生产力和代码可读性。 Python 最初是由 Guido van Rossum 开发的。 它于 1991 年首次发布。Python 受 ABC,Haskell,Java,Lisp,Icon 和 Perl 编程语言的启发。 Python 是一种高级通用通用解释型语言。 Python 是一种简约语言。 它最明显的功能之一是它不使用分号或方括号。 它改用缩进。 目前,Python 有两个主要分支:Python 2.x 和 Python3.x。 Python 3.x 打破了与早期版本 Python 的向后兼容性。 它的创建是为了纠正该语言的某些设计缺陷并使该语言更简洁。 Python 由世界各地的一大批志愿者维护。 Python 是开源软件。 对于那些想学习编程的人来说,Python 是一个理想的起点。
W
init  
wizardforcel 已提交
60 61 62 63 64 65 66 67 68 69

本教程使用 Python 3.x 版本。

Python 编程语言支持多种编程样式。 它不会强迫程序员采用特定的范例。 Python 支持面向对象和过程编程。 对功能编程的支持也很有限。

Python 编程语言的官方网站是 [python.org](http://python.org)

Perl,Python 和 Ruby 是广泛使用的脚本语言。 它们具有许多相似之处,并且是紧密的竞争对手。

本章是对 PyQt5 工具包的介绍。