Jump to content
Wikipedia The Free Encyclopedia

wxPython

From Wikipedia, the free encyclopedia
Python wrapper for wxWidgets
Developers Robin Dunn
Harri Pasanen
Initial release1998; 27 years ago (1998)
Stable release
4.2.2[1] / September 11, 2024; 13 months ago (2024年09月11日)
Repository
Written inC++ / Python
Operating system Cross-platform
License wxWindows License
Websitewxpython.org

wxPython is a wrapper for the cross-platform GUI API (often referred to as a "toolkit") 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

[edit ]

In 1995, Robin Dunn needed a GUI application to be deployed on HP-UX systems but also run Windows 3.1 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.[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.[3]

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.[2]

Project Phoenix

[edit ]

In 2010, the Project Phoenix began; an effort to clean up the wxPython implementation and in the process make it compatible with Python 3.[4] The project is a new implementation of wxPython, focused on improving speed, maintainability and extensibility. Like the previous version of wxPython, it wraps the wxWidgets C++ toolkit and provides access to the user interface portions of the wxWidgets API.[5]

With the release of 4.0.0a1 wxPython in 2017, the Project Phoenix version became the official version.[6] wxPython 4.x is the current version being developed as of June 2022.[7]

Use

[edit ]

wxPython enables Python to be used for cross-platform GUI applications requiring very little, if any, platform-specific code.

Example

[edit ]

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
importwx
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 the wxPython Close Button with wxPython GUI display show in Windows 10 operating system.

Close button with wxPython shown on Windows 10
importwx
classWxButton(wx.Frame):
 def__init__(self, *args, **kw):
 super(WxButton, self).__init__(*args, **kw)
 self.InitUI()
 defInitUI(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()
 defOnClose(self, e):
 self.Close(True)
defmain():
 app = wx.App()
 ex = WxButton(None)
 ex.Show()
 app.MainLoop()
if __name__ == "__main__":
 main()

License

[edit ]

Being a wrapper, wxPython uses the same free software license used by wxWidgets (wxWindows License)[8] —which is approved by Free Software Foundation and Open Source Initiative.

Applications developed with wxPython

[edit ]

References

[edit ]

Citations

[edit ]
  1. ^ "wxPython Changelog". wxPython. 2024年09月11日. Retrieved 2024年11月28日.
  2. ^ a b Team, The wxPython (2017年07月14日). "wxPython History". wxPython. Retrieved 2022年06月25日.
  3. ^ "Yahoo! Groups : python-announce-list Messages :Message 95 of 1083". 2001年03月12日. Archived from the original on 12 March 2001. Retrieved 2022年06月25日.
  4. ^ "Goals of Project Phoenix" . Retrieved 2016年03月17日.
  5. ^ "Project Phoenix readme file on GitHub". GitHub . Retrieved 2014年01月01日.
  6. ^ Robin (2017年04月16日). "wxPython 4.0.0a1 Release". wxPython. Retrieved 2022年06月25日.
  7. ^ Team, The wxPython (2020年11月21日). "wxPython 4.1.1 Released". wxPython. Retrieved 2022年06月25日.
  8. ^ "Copyright notice". Archived from the original on 2009年02月16日. Retrieved 2009年02月27日.
  9. ^ "6 lessons from Dropbox one million files saved every 15 minutes". 14 March 2011.
  10. ^ "Open source components and licenses". Google Inc. Retrieved 28 January 2013.

Sources

[edit ]

Further reading

[edit ]
[edit ]
Wikimedia Commons has media related to WxPython .
Low-level platform-specific
On AmigaOS
On Classic Mac OS, macOS
On Windows
On Unix
On BeOS, Haiku
On Android
CLI
Low Level Cross-platform
CLI
C
Java
High-level, platform-specific
On AmigaOS
On Classic Mac OS, macOS
Object Pascal
Objective-C, Swift
C++
CLI
On Windows
CLI
C++
Object Pascal
On Unix and X11
High-level, cross-platform
C
C++
Objective-C
CLI
Adobe Flash
Go
Haskell
Java
JavaScript
Common Lisp
Lua
Pascal
Object Pascal
Perl
PHP
Python
Ruby
Tcl
XML
shell
Dart

AltStyle によって変換されたページ (->オリジナル) /