The wxPython project is one of the most popular and easy to use Python GUI toolkit. It wraps the popular C++ wxWidgets project using SWIG. It is also the only cross-platform toolkit that I am aware of that uses the native widgets on each platform wherever possible (for better or for worse). Some like to say that PyQt does this as well, but from what I’ve read, PyQt actually draws all its controls to mimic the native controls, it doesn’t actually use them. Anyway, that’s neither here nor there. The topic is the wxPython Demo. There are lots of people who do not know that this demo even exists.
The wxPython Demo is an extra download from wxPython’s main website. It has a runnable example of nearly every widget included with wxPython. In this article, we’ll take a quick look at what this demo can do.
Introducing the wxPython Demo!
If you go to the wxPython website and click on the Download link on the left, you’ll end up here. Just download the appropriate file based on what platform you’re currently using (i.e. Windows, Mac, or Linux) under the respective “Docs, Demo, Samples, etc.” section. On Linux, the package manager will sometimes list it as well. Once you’ve got it installed, run the demo by double-clicking the shortcut (on Windows) or the demo.py file in the “\wxPython2.8 Docs and Demos\demo” folder. You should end up with something like the image above (click it for a better view).
Using the Demo
To use the demo, you can browse the widgets by expanding the trees on the left and then clicking on individual items. Or you can do a search for items using the search box on the lower left to filter the demos. Once you’ve selected a demo, you will see a notebook with three tabs on the right. The tabs will be labeled with the widget name and overview, the code for the demo, and then the demo itself. You can modify the demo’s code, save the modifications and run them live in the demo. Then revert back to the original. It’s really cool!
wxPython Demo has other Tools Too!
The wxPython Demo has a couple other cool tools in the Help menu. The first is the PyShell, a fun little Python shell that you can use in much the same way that you can IDLE. Then there’s the Widget Inspection Tool. This is a very handy tool for debugging applications. It can highlight sizers and widgets, which can tell you if your widget is misplaced in a sizer or why your GUI looks so funky. Robin Dunn, the creator of wxPython created it and he uses it frequently to debug code that it on the wxPython mailing list or that has been pasted in the wxPython IRC channel.
Anyway, you can learn how to use most of the widgets by using the wxPython demo. That’s where I usually go when I want to learn a widget or to answer someone’s question about a widget. I hope you found this helpful in your wxPython learning experience.