入门导航&简介
写UI需求(实际上是想要给自己写一个桌面宠物/老婆),结合博客导航(天山老妖S原创)和书籍学习。以下为博客导航,书籍学习则希望参考 《PyQt5快速开发与实战》。
入门导航
PyQt5简介
PyQt5简单介绍
PyQt是Qt框架的Python实现,是最强的GUI库之一。PyQt提供了一个设计良好的窗口控件组合,每一个PyQt空间都对应一个Qt控件,因此PyQt的API接口和Qt的API接口很接近。
官方网站:www.riverbankcomputing.com
PyQt5提供GPL版和商业版证书,自由开发者可以使用免费的GPL许可,如果需要将PyQt用于商业应用,则必须购买商业许可。
- Qt框架:Qt是一个1991年由Qt Company开发的跨平台C++图形用户界面应用程序开发框架,可以开发GUI程序,也可开发非GUI程序,如控制台和服务器。是一种面向对象的框架
- GUI:图形界面
- API,英文全称Application Programming Interface,翻译为“应用程序编程接口”。 是一些预先定义的函数,目的是提供应用程序与开发人员基于某软件或硬件得以访问一组例程的能力,而又无需访问源码,或理解内部工作机制的细节
PyQt5的特性
- 基于高性能Qt的GUI控件集
- 能够跨平台运行在Linux,Window和Mac OS系统上
- 使用信号槽机制进行通信
- 对Qt库完全封装
- 可以使用成熟的IDE进行界面设计,并自动生成可执行的Python代码
- 提供一整套种类齐全的窗口控件
PyQt4与PyQt5的区别
区别如下
- 重新组合模块,PyQt4中的某些模块被废弃(QtScript),有些被拆分为两个子模块(QtGui、QtWebKit)
- 添加新模块,如QtBluetooth、Q他Positioning和Enginio
- 废弃SINGAL()和SLOT(),用新的信号槽处理方式
- 不再支持所有被标记为废弃的或者不建议使用的Qt API
PyQt5模块
主要模块如下
- QtCore包含非核心的非GUI功能,主要与时间、文件、文件夹、各种数据、流、URLs、mime类文件文件、 进程、线程一起使用
- QtGui包括窗口系统、事件处理、2D图像、·基本绘画、字体和文字类
- QtWidgets包含一系列创建桌面应用的UI元素
- QtBluetooth模块包含查找和连接蓝牙的类
- QtNetwork包含网络编程的类,能让TCP/IP和UDP开发变得更加方便和可靠
- QtPositioning包含定位的类,可以使用卫星、WiFi甚至文本
- Engine包含通过客户端进入和管理Qt Cloud的类
- QtWebSockets包含WebSocket协议的类
- QtWebKit包含一个基WebKit2的web浏览器
- QtWebKitWidgets包含基于QtWidgets的WebKit1类
- QtXml包含处理xml的类,提供SAX和DOM API的工具
- QtSvg提供显示SVG内容的类,Scalable Vector Graphics(SVG)是一种是一种基于可扩展标记语言(XML),用于描述二维矢量图形的图形格式
- QtSql提供处理数据库的工具
- QtTest提供测试PyQt5应用的工具
实例
1 | import sys |
运行结果如下