# 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 工具包的介绍。