|
想做个图形的程序,以前用过wx,现在想用pyqt5试试,但是发现资料很少,还是英文的。知乎上推荐了http://zetcode.com/gui/pyqt5/,依然是英文的,自己尝试翻译下,给自己看,也分享给大家。翻译的过程中,会加入一些我自己的理解,所以内容会比原文内容要多一些。
这是一份PyQt5的指南,这份指南适合初中级程序员,读完这份指南后,你可以编写一些完整的PyQt5的程序。
目录如下:
- 介绍 (introduction)
- 日期和时间(date and time)
- 第一个程序 (first programs)
- 菜单和工具栏 (menus and toolbars)
- 图层管理 (layout managerment)
- 事件和信号 (events and signals)
- 对话框 (dialogs)
- 小玩意 (小工具)
- 小玩意2 (小工具 II)
- 绘图 (painting)
- 自定义小工具 (custom widgets)
- 俄罗斯方块游戏 ( the tetris game)
PyQt5简介
这份PyQt5指南是介绍性的。这份指南的目的是让你使用PyQt5 工具包(tookit) 开始,指南中的内容在linux上创建和测试。
这段话是我自己加的,我看看命令是debian系的linux,这个系列的我用ubuntu最多,不过我现在换了mac,所以我所有的操作会换到OSX上。但是文中的命令我还是会保存。
关于PyQt5
PyQt5是来自Digia(一家公司)的一个Qt5程序框架的python绑定集合。它支持Python2.x和Python3.x。本指南使用的是python3。 Qt库是一个最枪法的GUI库中的一个,PyQt5的官方站点是www.riverbankcomputing.co.uk/news. PyQt5 是Riverbank Computing开发的。
PyQt5被实现为一个Python模块模式,它有超过620个类、6000个函数和方法。它是一个多平台的工具包,可以运行在所有主流的操作系统上,报错Unix,Windows 和 Mac OS。PyQt5具有双重许可。开发者可以选择GPL许可和商业许可。
PyQt5 安装
$ 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功能,这个模块被用于时间、文件和目录、不同数据类型,流(streams)、URLs、mine typs、进程或线程。
QtGui 包含 窗口系统继承类,事件处理类、2D图形类、基本成像类(basic imaging)、字体和文本。
QtWidgets 模块包含的类 提供一个UI元素集合 去创建检点的桌面风格的用户接口。
QtMultimedia 包含的类用于处理 链接摄像机(camera)功能和收音机(radio)功能和的多媒体内容 和APIs 。
QtBluetooth 模块包含的类用于扫描设备 并和它之间进行链接和交互。
QtNetwork 模块包含用于网络 开发的类。这些类通过使用网络编程更容易、更轻便 来让使用TCP/IP 和 UDP的客户端和服务端的 编码变得简便。
QtPositioning 包含的类 用于确定一个使用多种可能的源的位置,像卫星(satellite)、Wi-Fi、或者一个文本文件。
Enginio 模块实现客户端侧 用来链接Qt Cloud服务管理的应用程序的运行时 的库
QtWebSockets 模块包含的类 实现了WebSocket 协议,
QtWebKit 包含一个基于WebKit2的web浏览器实现 类
QtWebKitWidgets 包含一个 基于WebKit1的 web浏览器的 实现的 类,可用于 基于QtWidgets的程序
QtXml 包含的类用来操作XML文件。这个模块提供 SAX 和 DOM APIs 两种实现。
QtSvg模块提供的类用于显示SVG文件的内容, SVG(Scalable Vector Graphics)是一种使用XML描述二维图形和图形应用程序的语言。
QtSql 模块提供用来操作数据的类
QtTest包含的函数用于 PyQt5程序的单元测试。
PyQt4和PyQt5 的区别
PyQt5并不向后兼容PyQt4 ,在PyQt5有一些需要注意的改变。不过,将旧的代码调整使用新库并不是非常困难。他们之间的差异如下:
- python模块做了调整,一些模块被丢弃(QtScript),另有一些分放到子模块里(QtGui, QtWebKit)。
- 引入了新的模块,包括QtBluetooth, QtPositioning, or Enginio
- PyQt5只支持新式的信号和插槽处理,对SIGNAL() or SLOT()的调用不再支持。
- PyQt5不支持任何 在Qt v5.0的 Qt API中标记为弃用或者废弃的的部分
Python
原文这一段是用来介绍python的,这里就不翻译了。跟大家使用搜索引擎搜到的python介绍基本一致。 |
|
|
|
|
|
|