It might turn out that my first impressions on wxPython will be somehow biased. Well, not because there seems to be a decent, comprehensive tutorial readily available…
…but because the tutorial focuses on putting a very simple text editor together, and that’s where I’d like to start (see source code on the wx man pages).
Although wxPython isn’t bundled with Python itself, it installs easily on windows. The tutorial is comprehensive and readily addresses essential questions (GUI creation, layout, events).
I just picked the source code and skimmed through it while reformatting it. Superficially, there are similarities with tkinter. While reformatting I noticed stuff that looks strange to a python beginner (that, I am):
def askUserForFilename(self, **dialogOptions): dialog = wx.FileDialog(self, **dialogOptions)
This looks like a ‘double pointer’; I have no idea what it might be.
dialog = wx.MessageDialog(self, 'A sample editor\n' 'in wxPython', 'About Sample Editor', wx.OK)
This may just be a way to continue a string on the next line (notice there’s no comma at end of line)
Anyways, I fired up this stuff (the reformatted version) and got an output window flashing on the screen and disappearing. Not good. So I went back to their ‘hello world’ and found they use…
… to avoid routing stdout to a separate window.
The mini text editor seems to be working like a charm. In the meantime, I haven’t learned much.
wxPython wins hands up for the first three hours of use. It doesn’t mean much. Just a way to say, the docs seem fairly usable compared to tkinter, with lots of examples to play with and a nice tutorial.
Aside, I encountered an issue both with tkinter and wxPython: stdout doesn’t print until I exit the app. Maybe it does if we route the output to a separate window. Still not great.
I guess that’s it for now. However unfair I’m likely set to have a closer look at wxPython before anything else.