GUIs: wxPython vs. Tkinter (and others)
Mike Meyer
mwm at mired.org
Sat Dec 11 01:55:52 EST 2004
"Erik Johnson" <spam at nospam.org> writes:
> I am looking for some input on GUI libraries.
Since you said others, I'll recommend PyQt. Major downside with it is
that it costs money on Windows.
> o What features does wxPython offer that Tkinter cannot (and vice
> versa)?
I don't know about wxPython, but PyQt includes it's own threading
facility, plus hooks to talk to databases. It also has a widget for
creating Windows "wizards" for walking through a set of options.
> o Is the general programming methodology pretty much the same between
> the two (e.g., the general program structure - using callbacks & Frames,
> etc. is the same, it's just a question of calling different widgets with
> their own arguments)?
Not for Qt. It has the notion of SLOTs and SIGNALs. You connect a
signal from an object to a slot or signal on another (or the same)
object. You can, for example, connect a signal from a slider widget to
a slot on a digital display widget, thus causing the display to change
as you move the slider.
At the python level, slots are just callable objects. At the
C++ level, slots are magic methods of objects. Signals are usually
associated with GUI events, but Python can emit them for whatever
reason it wants. It's possible to connect C++ signals to C++
slots/signals in Python, meaning that Python won't be involved when
that signal is emitted.
> o Do you have a strong preference for one over the other (or some other
> toolkit)? Why?
I strongly prefer PyQt TkInter. PyQt provides a higher level of
abstraction.
> o Is animation and graphics particularly better suited to one over the
> other?
I've never tried doing animation in TkInter. Qt provides timer devices
that you can use to drive animations. I suspect that doing the same in
TkInter would be noticably more difficult.
<mike
--
Mike Meyer <mwm at mired.org> http://www.mired.org/home/mwm/
Independent WWW/Perforce/FreeBSD/Unix consultant, email for more information.
More information about the Python-list
mailing list