这两天捎带看了一下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是Python编程语言中一个强大的GUI(图形用户界面)工具包,它使得开发者可以使用Python编写出具有本地外观和感觉的应用程序。wxPython是基于C++的wxWidgets库的Python绑定,提供了丰富的...
几本很不错的关于python gui的wxPython的书,包括“wxPython in Action(中文版)” 活学活用wxPython “《wxPython in Action》Noel Rappin, Robin Dunn著 2006年版”
这个压缩包文件"wxPython-demo-4.0.6_wxpython官方demo_wxPython-demo_wxpython_DEMO_w"包含了wxPython的官方演示程序,是学习和探索wxPython功能的理想资源。 【wxPython Demo】是wxPython库附带的一系列示例和...
在Python的GUI编程中,WxPython库是一个广泛使用的工具,它提供了丰富的控件和功能,使得开发者能够方便地创建出美观且功能完备的图形用户界面。无边框界面是一种特殊的界面设计,它去掉了窗口的常规边框,通常用于...
【wxPython】是一个结合了Python脚本语言与GUI功能的库,它基于wxWindows库,致力于提供高度可移植性的解决方案。wxWindows库是从C/C++中抽取出来的,目的是为了让应用程序能够在Windows、各种UNIX系统(如带X ...
**wxPython官方文档详解** **一、wxPython简介** wxPython是Python编程语言中的一个流行的图形用户界面(GUI)工具包,它允许开发者利用wxWidgets库来创建原生的跨平台应用程序。wxWidgets是一个C++库,实现了多种...
【wxPython中文文档详解】 wxPython是一款用于创建GUI(图形用户界面)的Python库,它提供了丰富的组件和功能,使得开发者能够用Python语言构建出美观且功能强大的桌面应用程序。wxPython是基于流行的wxWidgets库,...
《wxPython in Action 活学活用wxPython》是一本深入浅出的教程,旨在帮助读者掌握使用wxPython这一强大的GUI(图形用户界面)工具包进行Python编程的方法。wxPython是Python编程语言中用于创建桌面应用的一个流行库...
Python WxPython开源扫雷游戏PyMine为开源扫雷游戏PyMine 使用Python语言和WxPython UI框架。本例移植自开源例程JMine 请在程序所在目录使用python PyMine.py启动例程需要先安装Python 3.11和wxPython 4.2Python ...
**wxPython教程及实例** **概述** `wxPython` 是一个强大的GUI(图形用户界面)工具包,它允许Python开发者利用原生操作系统界面构建应用程序。它基于C++的`wxWidgets`库,提供了丰富的控件和组件,适用于Windows...
### wxPython中文教程知识点解析 #### 一、wxPython简介 **标题与描述解析:** - **标题**:“wxpython中文教程wxpython中文教程”强调了文档的主要内容为关于wxPython的教学指南。 - **描述**:“wxpython中文...
【Python 2.4 和 wxPython】 Python 2.4 是 Python 语言的一个较旧版本,它在2004年发布,并于2010年停止支持。这个版本包含了许多基础的Python特性,如元组赋值、生成器、with语句等。然而,随着语言的发展,许多新...
**标题:“wxpython3.9_py2.7”** 该标题指的是使用Python 2.7版本与wxPython 3.9版本的结合。wxPython是一个Python编程语言的GUI(图形用户界面)工具包,它允许开发者创建原生的、跨平台的用户界面。这里的“3.9...
python wxpython python gui
wxPython是一个Python库,它为开发者提供了在Python程序中使用图形用户界面(GUI)的功能。wxPython是基于wxWidgets C++库的Python封装,它允许开发者快速地创建跨平台的GUI应用程序。本文主要介绍了wxPython中如何...
【标题】:wxPython与PyOpenGL源码解析 在编程领域,GUI(图形用户界面)是用户与软件交互的重要方式。wxPython是一个流行的Python库,用于创建跨平台的GUI应用程序,而PyOpenGL则是Python中的一个OpenGL绑定库,...
**wxPython教程** wxPython是一种流行的GUI(图形用户界面)工具包,用于在Python编程语言中构建跨平台的应用程序。它允许开发者使用Python编写代码,同时利用wxWidgets库的原生外观和感觉,使得应用程序在不同操作...
**wxPython介绍** wxPython是Python编程语言的一个GUI(图形用户界面)工具包,它允许开发者使用Python编写具有原生外观和感觉的应用程序。wxPython是基于C++的wxWidgets库构建的,提供了丰富的控件集和事件处理...
`Old Nabble - GnuRadio - Error installing wxPython on CYGWIN in Windows XP.mht`可能涉及到与`GnuRadio`一起使用`wxPython`时遇到的特定错误,`GnuRadio`是一个开源软件定义无线电框架,有时需要`wxPython`来...