契子
州的先生学习 Python 是在 2013 年先后,那时候的不只各类学习资料匮乏,还有 Python2 与 Python3 之间的斗争。程序员
从当年的程序员小众脚本语言,到现在火热的全民编程首选。Python 的生态逐渐丰富。适用于各个场景的第三方库也目不暇接地发布、迭代和完善。web
有本身工做和学习需求的人,可能就能够直接拿来提升效率了,可是仍是有不少人在掌握了 Python 的基础知识以后,急需一种可以带来及时正向反馈的模块来延续本身的编程之路。编程
一大部分的人选择经过学习 Python 的图形界面宽框架来让本身的 Python 学习之路显得不那么枯燥,写出来的小玩意儿可以看得见、点得着。让本身写的程序变成一个普通人认知里的程序软件,这带来的及时反馈和成就感能够说会不断激发学习的兴趣。浏览器
而在 Python 的生态里,图形界面开发框架说多很少,说少也很多,像主流的就有:微信
Tkinter多线程
PyQt5框架
PySide2ide
WxPython布局
Kivy性能
这些框架各有优缺点,好比 Tkinter
是 Python 的内置框架,不须要额外的安装,对 Python 初学者来讲,不用愁心各类模块的安装失败,缺点则是组件只能知足基本需求。
而 PyQt5
、PySide2
、WxPython
这些框架则组件丰富、功能强大;
至于 Kivy
,则是一个全平台的图形界面开发框架,上述几个框架只能用于编写桌面图形界面程序,而 Kivy
则能够打包为 Windows、Linux、MacOS、Android、IOS 等全平台的软件。
显然将来还会有更多的 Python 图形界面框架诞生。
面对如此众多的框架,初学者不免会不知所措。生怕学了一个框架,之后却用不着。
州的先生在本身学习 Python 图形界面开发的过程,踩过了不少坑,也吸取了不少的经验。
在此借鉴 13 年看过的一篇文章《5 天学会一种 web 开发框架》,给出一个 5 天学会一种 Python 图形界面框架的经验,但愿能给初学者一丝帮助,让其能从繁杂的 API 和文档中解放出来,学会通常逻辑和核心结构,事半功倍地掌握和学习新的框架。
清单
基础篇
基础篇主要涉及一个框架的运行方式,要了解其程序经过哪一种方式来运行,其内容包括:
如何运行一个基础的图形界面程序?
若是实现一个主窗口程序的运行?
基础组件篇
在了解了一个图形界面应该如何运行以后,咱们就能够在其窗口内添加各类组件了,基础组件是一个任何一个图形界面都包含的模块,好比:
单行文本输入框;
按钮;
文本;
单选框;
多选框;
多行文本输入框;
表格;
列表;
也有一些复合型的组件,好比:
选项卡;
菜单栏;
须要了解:
如何添加一个基本组件到主窗口?
配合“交互篇”了解组件的事件反馈;
布局篇
一个图形界面要美观,其布局相当重要。咱们不可能把全部的组件杂乱无章地堆放在主窗口中。须要了解:
框架中有哪几种布局方式?
如何使用某种布局?
如何将组件放置在布局中?
交互篇
交互是全部程序的灵魂,若是没有交互,写得再漂亮的图形界面也仅仅是一个图形界面而言。交互所实现的,是图形界面与工做代码之间的联系。这些交互包括各类组件的点击、输入、显示、隐藏等。
须要了解:
基础的组件都有哪些事件(信号)能够被捕获?
捕获的事件(信号)须要如何进行操做?
性能篇
对于图形界面程序来讲,一个程序启动以后就占用了一个进程,若是咱们后台有任务须要处理,好比某个按钮点击了以后,须要下载一个几百兆的文件,那么程序的主界面在下载任务执行的过程当中就会被阻塞。为了更好的性能,咱们须要了解:
如何在框架中使用多线程?
如何在框架中使用多进程?
框架中的多线程、多进程如何进行通讯?
高级组件篇(可选)
高级组件表示,这个框架有,那个框架可能没有。好比:
绘图
SQL
浏览器
高级组件能够参照基础组件的点,查看文档了解其特性和使用方式;
样式篇(可选)
全部的图形界面框架都会为组件提供一个基础的样式,可是若是有定制化的需求,这些基础样式可能就知足不了要求。这时候就须要进行样式的调整,须要了解:
框架是否支持自定义样式?
框架支持哪些自定义样式的形式?
如何使用这些自定义样式方法?
打包篇(可选)
程序写好以后,咱们还须要将其打包为特定平台上的程序包,好比 Windows 上的 exe、安卓上的 apk 等。须要了解:
框架支持哪些打包方式;
框架支持打包到哪些平台?
最后
其实,使用图形界面框架编写和开发图形界面程序,就像是搭积木。咱们先掌握好总体的结构,再根据须要将特定的积木拼接在一块儿,若是对某块积木的功能不甚了解,那么能够翻阅其说明文档以了解使用。
而非头痛医头、脚痛医脚,盲人摸象般的去使用框架。
按照上述的清单,掌握图形界面框架开发的总体和结构,剩下的,就交给时间和练习吧。
祝你们都能写出好看、强大的图形界面程序。
本文分享自微信公众号 - 州的先生(zmister2016)。
若有侵权,请联系 support@oschina.cn 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一块儿分享。