这两天捎带看了一下wxWidgets的Python版本wxPython,不知道是不是因为没在C++圈子里转过,我总感觉wxPython的名气要比wxWidgets本身都要响亮了。还好,这相互之间互不冲突,wxPython只是wxWidgets的python wrapper,核心还是C++ code,这也是Python的一大特点,所以也不怪Python的库那么多,功能那么强大,涵盖的面那么广。
Python的图形库的选择有不少,首当其冲的是随Python一起分发的tcl/Tk,此外还有GTK和QT各自的pyGtk、pyQt,再一个就是wxPython。除了pyQt以外我都用过了,谈谈感受吧。
用Tk写的东西相对最多了。Tk最直观的特点就是难看,它的控件外观是自身的,与操作系统不太协调,对于一个GUI Toolkit来说,这个简直就是不能原谅的问题。至于其它,我倒是没有感觉到有什么不方便,而且和Python一起分发是它最大的优势。wxPython.In.Action上评价Tk是一套老旧过时的东西,而且控件太少,不过这主要是因为wxWidgets的控件确实比较丰富。
pyGtk是GTK的Python wrapper,它相对使用起来就比较麻烦了。在Linux上基本上发行版都会自带相关的库,但是要移植到Windows上就不是一般的麻烦了,首先要装GTK Windows的Runtime,然后还要再装pyGtk、pyCario等库,弄不好还跑不起来。pyQt我想也与之类似。
wxWidgets就不一样了,它在各个系统上都使用本地的界面(在Linux里是Gtk的),安装只要把wxPython的包装上就可以了,零配置。
编程方面,wxPython和Tk非常类似,几乎就是一样,都是采用mainloop的形式,控件的创建、事件的绑定方法都是大同小异。但是wxPython确实要更加丰富,更加强大一些。举个简单的例子,wx中专门有一个StatusBar控件,虽然别的图形库里实现也不麻烦,但是这个省去了很多细节上的麻烦。
wxWidgets除了C++、Python的版本还有其它语言上的移植版,比如wxPerl、wxLua,基本上都是C语言系的。Java平台上似乎有过两个项目曾经试图把wxWidgets移植过来,分别是wx4j和jwx!,不过这两个项目似乎都没有做大,发展情况也不是很好。当然,Java上有非常相似的SWT,也便不太需要wx了。不过要说起SWT,和wx倒是也有很多非常相似的东西,比如那个用bitmask的方法来给一些属性赋值,SWT上:
int code = SWT.DIALOG_TRIM | SWT.MIN;
Shell shell = new Shell(display, code);
ScrolledComposite scrollPane = new ScrolledComposite(shell,
SWT.H_SCROLL|SWT.V_SCROLL|SWT.BORDER);
wx上:
style = wx.DEFAULT_FRAME_STYLE ^ (wx.RESIZE_BORDER | wx.MINIMIZE_BOX |
wx.MAXIMIZE_BOX)
frame = wx.Frame(self, None, -1, "Test", {0,0}, {10,10}, style)
也许是因为同根生吧。
分享到:
相关推荐
wxpython中文教程wxpython中文教程wxpython中文教程wxpython中文教程wxpython中文教程wxpython中文教程wxpython中文教程wxpython中文教程wxpython中文教程
几本很不错的关于python gui的wxPython的书,包括“wxPython in Action(中文版)” 活学活用wxPython “《wxPython in Action》Noel Rappin, Robin Dunn著 2006年版”
python2.4相对应的wxPython,还有很多库,一次性下载,不用费心去找了。
wxPython的wxAuiNotebook实现Tab页效果
wxPython开发参考书籍
wxpython grid使用部分
Part1 wxPython入门 , wxPython入门 , wxPython入门里面有实例讲解
wxpython 学习,各种demo集合,
wxpython for python2.4 wxpython for python2.4 wxpython for python2.4 wxpython for python2.4 做python开发,注意自己的python版本是2.4
最新wxpython中文文档,根据官方文档排版,变量,api等为英文,相关解释为中文,更好编辑
wxPython and PyOpengl源码 演示如何在wxPython构建的GUI中使用pyopengl绘制场景
wxPython是Python语言的一套优秀的GUI图形库。允许Python程序员很方便的创建完整的、功能键全的GUI用户界面。 wxPython是作为优秀的跨平台GUI库wxWidgets的Python封装和Python模块的方式提供给用户的。 下面的2个...
wxPython是Python编程语言的一个GUI工具箱。他使得Python程序员能够轻松的创建具有健壮、功能强大的图形用户界面的程序。它是Python语言对流行的wxWidgets跨平台GUI工具库的绑定。而wxWidgets是用C++语言写成的。 和...
wxPython Application Development Cookbook wxPython 开发入门
wxPython是一个用于创建桌面GUI应用程序的跨平台工具包。wxPython的主要作者是Robin Dunn。使用wxPython,开发人员可以在Windows,Mac和各种Unix系统上创建应用程序。
我找到的第一个关于wxpython中文版的国外资深图书。
wxPython_API.chm Python+中文手册.pdf Python入门指南 2.5b.pdf python教程.chm wxPIA_book wxPython_Tutorial wxpython-in-action-zh.pdf
wxpython的api文档! wxPython是Python编程语言的一个GUI工具箱。他使得Python程序员能够轻松的创建具有健壮、功能强大的图形用户界面的程序。它是Python语言对流行的wxWidgets跨平台GUI工具库的绑定。而wxWidgets...
wxPython Grid Tips and Tricks
本资源位python3.6下的wxPython whl文件,可以直接pip install安装,有需要的可以下载一下。