- WxPython
wxPython is a
cross-platform wrapper for the GUI API (often referred to as a 'toolkit ')wxWidgets (which is written inC++ ) for the Python programming language. It is one of the alternatives toTkinter , which is bundled with Python. It is implemented as a Python extension module (native code ). Other popular alternatives arePyGTK andPyQT . Like wxWidgets, wxPython isfree software .License
Being a wrapper, wxPython uses the same
free software licence used bywxWidgets (LGPL) —which is approved byFree Software Foundation andOpen Source Initiative .History
wxPython was born when
Robin Dunn needed a GUI to be deployed onHP-UX systems and also onWindows 3.1 in a few weeks time. While evaluating commercial solutions, he ran across Python bindings for the wxWidgets toolkit. Thus, he learned Python and, in a short time, became one of the main developers of wxPython (which grew from those initial bindings), together withHarri Pasanen .The first versions of the wrapper were created by hand. However, soon the code base became very difficult to maintain and keep in sync with wxWidgets releases. However, later versions were created withSWIG , greatly decreasing the amount of work to update the wrapper. The first "modern" version was announced in 1998 [ [http://groups.yahoo.com/group/python-announce-list/message/95 Yahoo! Groups ] ] .Example
This is a simple "Hello world" module, depicting the creation of the two main objects in wxPython (the main window object and the application object), followed by passing the control to the event-driven system (by calling
MainLoop()
) which manages the user-interactive part of the program.import wx
class TestFrame(wx.Frame): def __init__(self, parent, ID, title): wx.Frame.__init__(self, parent, -1, title, pos=(0, 0), size=(320, 240)) panel = wx.Panel(self, -1) text = wx.StaticText(panel, -1, "Hello, World!", wx.Point(10, 5), wx.Size(-1, -1))
class TestApp(wx.App): def OnInit(self): frame = TestFrame(None, -1, "Hello, world!") self.SetTopWindow(frame) frame.Show(True) return True
if __name__ = '__main__': app = TestApp() app.MainLoop()
See also
*
wxGlade , a wxWidgets GUI designer that creates wxPython codeExternal links
* [http://wxpython.org/ The official wxPython website]
* [http://wxwidgets.org/ The official wxWidgets website]
* [http://wiki.wxpython.org/wxPythonPit%20Apps List of applications developed with wxPython]
* [http://showmedo.com/videos/series?name=PythonWxPythonBeginnersSeries Tutorial screencasts for starting wxPython programming]
*
*References
*
Wikimedia Foundation. 2010.