Python GUI(tkinter;pygtk+glade),py2exe
我刚开始学习Python编程和图形用户界面(GUI)。我在网上查了一下关于GUI编程的资料,发现有很多种方法可以实现。我看到在Python中,使用tkinter可能是最简单的方式(它是Python自带的一个库,只是一个GUI库,不是GUI构建工具)。我还读了很多关于GLADE+PyGTK(还有XML格式)的内容,想知道它有什么特别之处(因为GLADE是一个GUI构建工具)?
有没有人能分享一下他们对这些选择的“个人看法”?
我有一些Python代码,我想做一个简单的GUI(两个按钮:打开、关闭、读取、写入,还有一些“打印”功能),然后生成一个.exe文件(py2exe是最好的选择吗?)。为了实现GUI,代码需要做很多改动吗?
非常感谢!
2 个回答
我非常喜欢PyQt这个库,它是用来和Qt库配合使用的。
Qt本身是一个非常不错的框架——功能丰富、强大、优雅(至少在我看来是这样)。而PyQt则很好的把这些功能带到了脚本环境中,让我们更容易使用。
另外,还有一本关于PyQt开发的很棒的书——《用Python和Qt快速编写图形用户界面》——通过学习这本书,我受益匪浅。
如果你的图形界面(GUI)真的很简单,那就用自带的tkinter吧。
你可以参考一个叫做Hello, Tkinter的教程,内容很简单易懂。关于创建可执行文件,py2exe在大多数情况下应该都能正常工作(不过我没试过tkinter)。另外一种创建可执行文件的方法是给你的“setup.py”文件添加一个特殊的参数:
setup(...,
entry_points = {"gui_scripts" : ['name-of-executable = name_of_package.launcher:main']})
这样做的话,比如你可以在终端中输入“name-of-executable”来运行这个可执行文件(即使在Windows上,只要Python的“scripts”路径在PATH里就可以^^)。它会运行一个叫“name_of_package”的模块里的“main”函数。这样,你就不需要使用py2exe,而是可以创建一个Windows安装程序,或者一个Debian包。
对于更复杂的项目,我绝对推荐PyGTK和Glade作为界面设计工具。使用它需要安装几个Python包,还需要安装GTK+(在Windows上这并不总是那么简单)。它的API非常棒,文档也很齐全,而且Glade使用起来也很简单,只要你习惯了GTK的布局概念。不过我可能有点偏见,因为我在PyGTK上做过多个项目。wxWidgets或PyQT也是不错的选择。例如,bazaar explorer就是用QT写的。