一、业界标准-官方文档
关于Python的GUI编程,Python有个专门的官方文档介绍;
建议大家学习知识点多去看官方文档,没有比这更权威的了;
官方文档地址
二、常用库简介
1. Python中常用的GUI库
- Python官方标准库:Tkinter
- 三方库:PyQt
- 三方库:PySide
- 三方库:wxPython
- 三方库:PyGUI
- 三方库:Kivy
- 三方库:Libavg
- ... ...
疑问:为什么会有那么多库?搞一个统一的不就可以了吗?
答: 你先给我解释下:为什么会有那么多不同品牌的车,整一种不就可以了吗?
其实每一个库都有优缺点;只要根据我们的需求和对每个库优缺点的了解,才能选出合适的库。跟找对象一样。
2. 选择合适库的依据
防撕逼声明:没有最好的,只有最适合的。仅供参考!
-
简单好用
如果一个库实现一个非常简单的功能,都需要几十行代码,过于复杂, 那肯定不适合; 但需要知道一点:一个库的高封装性,虽然使用起来非常爽,非常简单; 但同时带来的问题就是:缺乏灵活性,不太好定制一些功能;需要大家自己衡量;
-
功能强大
一般情况下,库的功能越强大越好! 但不绝对,强大意味着库比较重量级; 假设你根本不需要这些功能,那这些强大的功能代码将变成累赘 如同:你就只需要打电话,发短信功能;买个低配的诺基亚就行,为啥耗费更多的钱去买iPhone X
-
文档齐全,方便查看
这一点拒绝反驳! 库是别人写的,简单说: 一个函数;函数名别人写的,参数个数,参数含义都是别人定义的; 如果别人不告诉你,你想知道具体怎么用,会耗费极大的精力; 例如:Sz 写了一个牛逼的功能函数: def xxx(a, b, c, d): pass 看不到源码,没有注释的情况下,你给我猜着用吧!
官方标准库Tkinter就存在这样的问题!
除下自己以外,
其他不写注释的程序猿都是在耍流氓! -
性能高
虽然现在计算机性能都挺好; 可是你展示个简单控件,响应个用 户点击都要好几秒,这绝对说不过去!
-
生态支持
拿GUI编程来说,能够有匹配的工具来辅助你完成项目,那肯定是极好的; 试想:一个项目包含很多界面,假设每个界面都是纯手工去写,那绝对是苦逼的以泪洗面; 但是此刻,如果有个辅助界面设计工具 你只需要拖拽就可以完成界面搭建,几乎不需要写代码,你会不会很开心? 所以,有良好的生态,也非常重要。
-
跨平台支持
这个不绝对,但是如果写同一份代码; 不需要怎样改动就可以运行在:Mac, Win, Android, iOS等等操作系统, 而且会根据不同的系统来调整对应的风格; 你就说你开不开心吧
-
开源免费
嘿嘿嘿嘿嘿嘿嘿 你 懂 得 . . .
三、最终选择-PyQt
1. PyQt是什么?
PyQt是Qt最流行的Python绑定之一
简单理解
使用Python重新实现了一遍Qt的功能
Python的语法简洁, 最终代码量更少
阅读起来更容易理解
在实现的时候, 几乎保持了全部原有的API
学习完PyQt之后, 只要掌握C++语法之后
就可以快速的接手Qt的使用
2. 本质还是Qt
Qt 是 C++写的一个跨平台的GUI开发框架
Qt发展
- 1991年奇趣科技公司开发的C++ GUI应用程序
- 2008年奇趣被诺基亚收购,Qt也就变成诺基亚的了
- 2012年,Qt被Digia收购
- 2014年发布了Qt5.3正式版,至此,对iOS,Android,WP等平台进行了全面支持
现在提供了开源版本和商业版本
Qt功能
- xml
- 网络
- 多线程
- 数据库
- 定位
- 多媒体
- web浏览器
- 桌面UI - 主要讲解这一部分
...
3. PyQt官网
4. PyQt的版本
- 1998年首次发布
PyKDE 后改名PyQt
- PyQt3
- PyQt4
- PyQt5
Python对Qt5.x版本的绑定
对Python3支持很好
4. 教学中的版本选择
Python3 +
PyQt5
四、PyQt优势
1. 简单好用
在同等功能实现的下,使用已经很简单
界面完全可以可视化操作
2. 功能强大
600多个类
种类繁多的控件
3. 跨平台支持
Windows
Linux
Mac OS
iOS
Android
...
4. 性能高
Qt使用C++实现
自行领悟
5. 文档齐全
对Qt库Python绑定
除下自己的文档,也几乎可以通用Qt文档
6. 稳定性高
面向对象
信号与槽的机制
界面设计与业务代码完全隔离
7. 生态支持
Qt Designer进行图形界面设计
ui转换成py文件
资源处理
...
8. 开源免费
PyQt5是双重许可的。开发人员可以在GPL和商业许可之间进行选择
GPL协议
- 软件版权为开发者本人所有
- 受国际相关版权法保护
- 允许其他用户对原作者软件进行复制和发行
- 也可更改后,发行自己的软件
- ...
五、综上所述
我们教程中的Python-GUI库的选择是PyQt!
下一章节会介绍如何搭建相关开发环境!
-
获取更多资源,请关注微信公众号“百川一页”;
百川一页
-
或加入QQ群:635040761(请注明来源)
Python进化群
网友评论