
1.2 GUI的开发工具包
Python中有许多优秀的图形用户界面开发工具包,包括PyQt、PyGTK、Kivy、Flexx、pyui4win、Tkinter和wxPython等。
1.PyQt
PyQt是Qt与Python的成功融合,或者也可以认为PyQt是Qt库的Python版本。PyQt结合了二者的优点,可以用于快速地创建应用程序,并且PyQt还可以进行跨平台开发。PyQt包括PyQt 3、PyQt 4、PyQt 5和PyQt 6等,PyQt 5之前的版本均不再支持更新,所以对于新开发的应用程序,强烈推荐使用PyQt 5或PyQt 6。
2.PyGTK
PyGTK是使用Python封装的GTK图形库,通过PyGTK可以轻松创建具有图形用户界面的程序。PyGTK真正具有跨平台性,它能不加任何修改,稳定地运行在各种操作系统之上,如Linux、Windows和macOS等。除了简单易用和快速的原型开发能力之外,PyGTK还拥有一流的处理本地化语言的独特功能。
3.Kivy
Kivy是一个开源工具包,能够让使用相同源代码创建的程序跨平台运行,如图1-1所示。Kivy主要关注创新型的图形用户界面开发,例如多点触摸应用程序等。Kivy还支持GPU加速,拥有Flash般的动画效果,开发者只需简单的几行代码便可以写出炫丽的界面。除此之外,Kivy还具有良好的API文档,便于初学者快速入门学习。

图1-1 Kivy
4.Flexx
Flexx是一个纯Python工具包,用来创建图形化界面应用程序,其使用Web技术进行界面的渲染,并且由于Flexx是使用Python开发的,所以Flexx同样具有跨平台性。
5.pyui4win
pyui4win是一个采用自绘技术的开源界面库,支持C++和Python。由于pyui4win拥有所见即所得的界面设计器,所以在pyui4win中,界面设计甚至可以完全交由美工人员去处理,而开发人员只需负责处理业务逻辑,彻底地将开发人员从繁杂的界面设计工作中解放出来。
6.Tkinter
Tkinter是Python官方提供的图形用户界面开发工具包,基于Tk GUI工具包封装而来。Tkinter是一个轻量级的跨平台图形用户界面开发工具包,可以在UNIX、Linux、Windows和macOS中运行,并且在Tkinter 8.0之后可以实现本地窗口风格。Tkinter用起来非常简单,并且开发速度也较快,Python自带的IDLE就是使用Tkinter编写的,但是Tkinter所包含的控件较少,在开发复杂的图形用户界面时,会显得力不从心。
7.wxPython
wxPython是一款开源的GUI图形库,其基于wxWidgets工具包封装而来,允许Python程序员很方便地创建完整的、功能健全的GUI用户界面,并且wxPython同样具有非常优秀的跨平台能力,如图1-2所示。除此之外,wxPython提供了丰富的控件,可以开发复杂的图形用户界面,而且wxPython的帮助文档非常完善,易于初学者快速入门学习。
通过对上述图形用户界面开发工具包的初步介绍,可以得知每个图形用户界面开发工具包都具有其鲜明的优缺点,所以在项目开发前,读者需要根据项目的具体应用场景来选择使用更为合适的图形用户界面开发工具包进行开发。
本书将为读者重点讲解Tkinter和wxPython的使用方式。

图1-2 wxPython