# 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

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 开发。

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

## PyQt5 安装

```py
$ sudo pip3 install pyqt5

```

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

## PyQt5 模块

PyQt5 的类分为几个模块，包括以下模块：

*   `QtCore`
*   `QtGui`
*   `QtWidgets`
*   `QtMultimedia`
*   `QtBluetooth`
*   `QtNetwork`
*   `QtPositioning`
*   Enginio
*   `QtWebSockets`
*   `QtWebKit`
*   `QtWebKitWidgets`
*   `QtXml`
*   `QtSvg`
*   `QtSql`
*   `QtTest`

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

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

`QtXml`包含用于处理 XML 文件的类。 该模块提供了 SAX 和 DOM API 的实现。 `QtSvg`模块提供了用于显示 SVG 文件内容的类。 可伸缩向量图形（SVG）是一种用于描述 XML 中的二维图形和图形应用的语言。 `QtSql`模块提供用于处理数据库的类。 `QtTest`包含可对 PyQt5 应用进行单元测试的功能。

## PyQt4 和 PyQt5 的区别

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

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

## Python

![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 是一个理想的起点。

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

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

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

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

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