WxPython
   HOME

TheInfoList



OR:

wxPython is a wrapper for the
cross-platform In computing, cross-platform software (also called multi-platform software, platform-agnostic software, or platform-independent software) is computer software that is designed to work in several computing platforms. Some cross-platform software ...
GUI The GUI ( "UI" by itself is still usually pronounced . or ), graphical user interface, is a form of user interface that allows users to interact with electronic devices through graphical icons and audio indicator such as primary notation, inste ...
API (often referred to as a "
toolkit A toolkit is an assembly of tools; set of basic building units for user interfaces. The word toolkit may refer to: * Abstract Window Toolkit * Accessibility Toolkit * Adventure Game Toolkit * B-Toolkit * Battlefield Mod Development Toolkit * Che ...
") wxWidgets (which is written in C++) for the Python programming language. It is one of the alternatives to Tkinter. It is implemented as a Python extension module ( native code).


History

In 1995, Robin Dunn needed a
GUI The GUI ( "UI" by itself is still usually pronounced . or ), graphical user interface, is a form of user interface that allows users to interact with electronic devices through graphical icons and audio indicator such as primary notation, inste ...
application to be deployed on HP-UX systems but also run
Windows 3.1 Windows 3.1 is a major release of Microsoft Windows. It was released to manufacturing on April 6, 1992, as a successor to Windows 3.0. Like its predecessors, the Windows 3.1 series ran as a shell on top of MS-DOS. Codenamed Janus, Windows ...
within short time frame. He needed a cross-platform solution. While evaluating free and commercial solutions, he ran across Python bindings on the wxWidgets toolkit webpage (known as wxWindows at the time). This was Dunn's introduction to Python. Together with Harri Pasanen and Edward Zimmerman he developed those initial bindings into wxPython 0.2. In August 1998, version 0.3 of wxPython was released. It was built for wxWidgets 2.0 and ran on Win32, with a wxGTK version in the works. The first versions of the wrapper were created by hand. However, the code became difficult to maintain and keep synchronized with wxWidgets releases. By 1997, versions were created with SWIG, greatly decreasing the amount of work to update the wrapper.


Project Phoenix

In 2010, the Project Phoenix began; an effort to clean up the wxPython implementation and in the process make it compatible with Python 3. The project is a new implementation of wxPython, focused on improving speed, maintainability and extensibility. Like previous version of wxPython, it wraps the wxWidgets C++ toolkit and provides access to the user interface portions of the wxWidgets API. With the release of 4.0.0a1 wxPython in 2017, the Project Phoenix version became the official version. wxPython 4.x is the current version being developed as of June 2022.


Use

wxPython enables Python to be used for cross-platform
GUI The GUI ( "UI" by itself is still usually pronounced . or ), graphical user interface, is a form of user interface that allows users to interact with electronic devices through graphical icons and audio indicator such as primary notation, inste ...
applications requiring very little, if any, platform-specific code.


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. #!/usr/bin/env python3 import wx app = wx.App(False) # Create a new app, don't redirect stdout/stderr to a window. frame = wx.Frame(None, title="Hello World") # A Frame is a top-level window. frame.Show(True) # Show the frame. app.MainLoop() This is another example of wxPython Close Button with wxPython GUI display show in Windows 10 operation system. import wx class WxButton(wx.Frame): def __init__(self, *args, **kw): super(WxButton, self).__init__(*args, **kw) self.InitUI() def InitUI(self): pnl = wx.Panel(self) closeButton = wx.Button(pnl, label='Close Me', pos=(20, 20)) closeButton.Bind(wx.EVT_BUTTON, self.OnClose) self.SetSize((350, 250)) self.SetTitle('Close Button') self.Centre() def OnClose(self, e): self.Close(True) def main(): app = wx.App() ex = WxButton(None) ex.Show() app.MainLoop() if __name__

"__main__": main()


License

Being a wrapper, wxPython uses the same free software licence used by wxWidgets ( wxWindows License)—which is approved by
Free Software Foundation The Free Software Foundation (FSF) is a 501(c)(3) non-profit organization founded by Richard Stallman on October 4, 1985, to support the free software movement, with the organization's preference for software being distributed under copyleft ( ...
and
Open Source Initiative The Open Source Initiative (OSI) is the steward of the Open Source Definition, the set of rules that define open source software. It is a California public-benefit nonprofit corporation, with 501(c)(3) tax-exempt status. The organization wa ...
.


Applications developed with wxPython

* Chandler, a personal information manager * Dropbox, desktop client for the Dropbox cloud-based storage *
Editra Editra is a cross-platform, open-source text editor, released under a wxWindows license. It is written by Cody Precord in Python, and it was first publicly released in June 2007. As of November 2011 the project is in alpha development phase, but ...
, a multi-platform text editor * Google Drive, desktop client for the Google cloud-based storage system * GRASS GIS, a free, open source geographical information system * Métamorphose, a batch renamer * Phatch, a photo batch processor * PlayOnLinux and PlayOnMac,
Wine Wine is an alcoholic drink typically made from Fermentation in winemaking, fermented grapes. Yeast in winemaking, Yeast consumes the sugar in the grapes and converts it to ethanol and carbon dioxide, releasing heat in the process. Different ...
front-ends * PsychoPy, experiment creation tool for neuroscience and psychology research


References


Citations


Sources

*


Further reading

*


External links

*
wxPython Widget Tutorial Series

Project Phoenix main page

List of applications developed with wxPython
{{DEFAULTSORT:Wxpython 1998 software Free computer libraries Python (programming language) libraries Widget toolkits WxWidgets