当使用桌面应用程序的时候,有没有那么一瞬间,想学习一下桌面应用程序开发?行业内专业的桌面应用程序开发一般是C++,C#来做,Java开发的也有,但是比较少。本节课会介绍Python的GUI(图形用户界面)编程,用Python也可以写出漂亮的桌面程序,建议此次课程大家稍作了解不要浪费太多时间,因为没有哪家公司会招聘以为Python程序员开发桌面程序吧?
学完此次课程,我能做什么?
学完本次课程,大家可以完成一个简易的记事本编辑器。
学习此次课程,需要多久?
15-20分钟
课程内容
首先看一下目前有哪些主流的GUI平台。
Tkinter:使用Tk平台,支持大多数的Unix系统,同时可以在Windows和Mac下运行,是Python的标准界面库,但是由于界面丑陋,文档极差而被开发者吐槽。
wxpython:拥有成熟和丰富的包,跨平台,可在Unix,Windows,Mac下运行,入门简单,文档写的很详细,再加上官方的Demo大全,确实给初学者降低难度,可以作为入门学习的首选库。
PythonWin:只能在Windows上使用,调用windows的GUI,如果要做跨平台的应用程序,显然不会选择它。
PyGTK:使用GTK平台,Linux系统上使用较多,跨平台。
PyQt:优点界面美观,多个平台,文档和教程丰富。但是商业化使用有版权的问题,需要授权,体积相对较大。
由于wxpython比较受欢迎,今天我们一起来学习一下这个GUI平台。
1.安装 wxpython
pip3 install -U wxPython
其他版本的请到wxPython官网下载,百度wxpython直达。
2.入门程序 Hello World。
运行结果如下,弹出了一个窗口,标题为Hello World
安装好界面库以后,我们先实现第一入门程序,在桌面程序中输出Hello world。
3.代码分析
先创建一个程序
app = wx.App()
创建完程序,下一步就是创建一个窗口(Frame)
win = app.Frame(None)
创建完成窗口,我们想要显示结果怎么办?(Show)
win.show()
最后运行主程序MainLoop()
app.MainLoop()
逻辑还是比较清晰的。
具体每个方法包含了,哪些参数,大家可以看一下文档说的很清楚。
如何做一个记事本?
其实,画界面真没有太多要讲的,大多就是看文档,了解每个参数和方法的含义。上面的代码语义也很清楚,添加按钮,添加文本框,设置位置大小,多行,滚动条。
密密麻麻的文档,对界面库感兴趣的可以仔细了解一下。
界面画好了,功能如何实现呢?
看上去代码量很有点多,但是其实仔细分析一下很简单,先定义两个方法,当点击按钮时触发,按钮布局画完后,使用Bind()方法,绑定到相应的函数即可。函数内部是我们上节课学习的文件读写操作。
简单看一下离线文档和Demo
文档中详细的说明了每个参数的含义。
富文本编辑器
200+的Demo,如果把这些都看明白,一定是GUI的大神了。
小结
Python写界面库,如果没有特别大的兴趣,点到为止,了解一下就可以了。