How to choose the right GUI toolkit ?

John Henry john106henry at
Fri Nov 10 07:15:52 CET 2006

Bill Maxwell wrote:
> On 8 Nov 2006 11:49:07 -0800, "John Henry" <john106henry at>
> wrote:
> >
> >John Salerno wrote:
> >> Dan Lenski wrote:
> >>
> >> > So, is there another toolkit I should be looking at?
> >>
> >> I highly recommend wxPython. It's very mature, full-featured, and
> >> portable, and fairly easy to learn as well. I can't really compare it to
> >> other toolkits (not having used any of them, except Tkinter), but it's
> >> definitely one of the most popular and well-supported ones out there.
> >>
> >>
> >
> >I highly recommend that you try PythonCard (which sits on top of
> >wxPython).  You can get productive very very quickly.  Take a look at:
> >
> >
> I took a brief look at PythonCard almost a year ago and got discouraged
> by what I found, so I stopped looking at it.  I've inserted my notes
> from back then, below.  Does anybody know if these things have been
> fixed in the latest release?
> Bill
> =====================================================================
> My notes from Fri Dec-23-2005:
> This is a list of gripes I have while trying to learn about PythonCard.
> I'm trying to investigate various GUI builders for Python, and
> PythonCard looks promising, but a lot of things are getting in the way.
> I installed yesterday, using this installer:
> PythonCard-0.8.1.FIXED.win32.exe
> A)  The very first example in the tutorial is wrong!
> 	On this page:
> 	When you follow this link to try something for the very first time:
> 		Getting Started in PythonCard by Dan Shafer:
> 	You quickly see that the example doesn't even contain
> this line, even though the tutorial refers to it:

I am not sure which one you are referring to but in the
PythonCard\samples\minimal, you will find a that says:


__version__ = "$Revision: 1.8 $"
__date__ = "$Date: 2005/12/17 15:20:02 $"

from PythonCard import model

class Minimal(model.Background):
    def on_menuFileAbout_select(self, event):

if __name__ == '__main__':
    app = model.Application(Minimal)

> 		def on_menuFileAbout_select(self, event):
> 	And, of course, if you replace the word "pass" with this, as
> instructed:
> 		result = dialog.alertDialog(self, 'It works!', 'Showing Off')
> 	it won't run, because the existing "pass" line isn't inside a def
> inside of a class.

No, it didn't work because the author forgot to mention that you have
to do a:

from PythonCard import model, dialog

instead of just:

from PythonCard import model

I just tried it and it works.

> B)  Is the Notebook widget really supported?
> 	In the installed file "changelog.txt" (gets installed as part of
> PythonCard installation), it says:
> 		"added Notebook component, PageBackground, and testNotebook
>  		sample"
> 	But, the testNotebook sample is nowhere to be found.

I haven't come across a need to use Notebook and so I can not say for
sure.  Looking at, it appears to be just a simple wrapper
on top of the wxWindow notebook.  I would encourage you to post a
message to the mailing list and ask there.

> 	I looked lots of places, including the main SourceForge web site,
> and on the wiki, here:
> 	Both the main website and the wiki seem way out of date, and the
> latest dates I could find on both of them are sometime in 2004.

Yes, sometime around 2004, the website updating stopped.   Fortunately,
development didn't.  There are quite a number of new things since then:
new resource editor (now call layout Editor, standalone exe creator,
and so forth).  I even learn that a new sizer handler is in the work.

Not saying that there are 10 programmers working 7/24 on it.  It *is*
an Open Source project nevertheless.   Nobody gets paid for doing it.
 But there are development work going on.

> 	Finally, by following the mailing list archive link on the main
> website, I managed to find a reference to the notebook component on the
> ASPN site, where some guy named Brian wonders about the same thing as
> me, concerning the availability of the notebook component:
> 	and, that message led me here:
> 	where Kevin Altis admits that he forgot to include it in the 0.8.1
> release!  At least he provides a way to download it separately.  But,
> gheesh, this is pretty poor for a new user.  I was interested in using
> the notebook component right away, because I looked at the wxGlade
> tutorial before looking at PythonPage, and they use the notebook
> component in their example (and I decided I really want to use the
> component).
> 	To add insult to injury, after you download the zip file with the
> testNotebook stuff, the readme file says this:
> 		"Until we have a Notebook integrated into some of the other
> samples or tools this will serve as a basic test app, but I don't expect
> to include it in releases."

As with all Open Source projects, your mileage differs.   PythonCard
does what *I* need to get done - and allowed me to get it done in a
*hurry*.  May be you really need Notebook and may be it's true that
Notebook really doesn't work, I don't know.   But if you managed to get
it working, write it up and get it included.  That's what Open Source
Projects are all about.

> C)  Are the websites being maintained?

It appears that the maintainer of the web site stopped updating it
since late 2004.  I don't know why.   May be he's been busy.  May be he
got mad.  I don't know.   All I know is that I have been very
productive with what I need to get done (and earned a happy living with
the code I created) and I am very grateful to the people that worked on
it - past and present.

I am not a "professional programmer" and so I probably can't contribute
to the development effort itself.   However, I've gotten pretty good in
using most of the package (other then Notebook, I admit).  So, if you
have any specific questions, please post it to the PythonCard list and
I'll try to help if I can.


More information about the Python-list mailing list