`
Classicning
  • 浏览: 259201 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

试用wxPython

    博客分类:
  • Tech
阅读更多
这两天捎带看了一下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)


也许是因为同根生吧。
分享到:
评论
1 楼 dotjar 2012-08-23  
主题让我含糊了

相关推荐

    基于wxpython+mysql的会员卡密领取盒子-易语言

    3. **领取每日卡密**:会员每天可以在系统中领取特定的卡密,这些卡密可能对应于各种权益,如折扣券、免费试用等。系统需确保每个会员每天只能领取一次,并且要记录卡密的发放情况,防止滥用。 【标签】"2020开源...

    用于 3D 几何 CAD,BIM,CAM 的 Python 包.zip

    类和方法/函数共享相同的名称,并可能共享相同的签名来自最著名的 Python Gui(tkinter、pyQt5 和 6、PySide2 和 6、wxPython)的 可视化使用 threejs 或 x3dom 框架在 Web 浏览器中实现 3D 可视化3D 可视化并在 ...

    Python库 | reliquery_ui-0.1.6b0-py3-none-any.whl

    reliquery_ui库版本为0.1.6b0,表明这是一个早期版本的β测试版,可能还存在一些未解决的问题,但已经可以供开发者试用。 描述中提到"解压后可用",意味着这个whl文件是一个已经打包好的Python软件包,通过Python的...

    一键给EXE文件加Q群验证工具E源码

    这可以作为软件试用、防止非法分发或者进行用户管理的一种手段。实现这个功能通常涉及到网络通信,如HTTP请求、TCP连接等,用来与QQ服务器交互,验证用户是否属于指定的QQ群。 源码是程序的原始形式,包含了开发者...

    eazy-entry:一个Gui应用程序,可用于自动执行“物理答题纸”中的数据输入

    提及"该工具的演示"意味着该压缩包可能包含一个演示版本,让用户了解和试用软件的实际操作流程。 **标签解析:** "Python"是这个项目使用的编程语言。Python以其易读性、丰富的库支持和强大的社区而闻名,常被用于...

Global site tag (gtag.js) - Google Analytics