python GUIs comparison (want)


J

jiang.haiyun

Now i began to learn GUI programming. There are so many
choices of GUI in the python world, wxPython, pyGTK, PyQT,
Tkinter, .etc, it's difficult for a novice to decide, however.
Can you draw a comparison among them on easy coding, pythonish design,
beautiful and generous looking, powerful development toolkit, and
sufficient documentation, .etc.
It's helpful for a GUI beginner.
Thank you.


:)Sorry for my poor english.
 
Ad

Advertisements

J

John Henry

Now i began to learn GUI programming. There are so many
choices of GUI in the python world, wxPython, pyGTK, PyQT,
Tkinter, .etc, it's difficult for a novice to decide, however.
Can you draw a comparison among them on easy coding, pythonish design,
beautiful and generous looking, powerful development toolkit, and
sufficient documentation, .etc.
It's helpful for a GUI beginner.
Thank you.


:)Sorry for my poor english.

I like Pythoncard. Simple. Get the job done fast.
 
C

Cameron Walsh

Now i began to learn GUI programming. There are so many
choices of GUI in the python world, wxPython, pyGTK, PyQT,
Tkinter, .etc, it's difficult for a novice to decide, however.
Can you draw a comparison among them on easy coding, pythonish design,
beautiful and generous looking, powerful development toolkit, and
sufficient documentation, .etc.
It's helpful for a GUI beginner.
Thank you.


:)Sorry for my poor english.

I googled "python gui compare" a while back and got
www.awaretek.com/toolkits.html as the first result.

Every variation on the values I entered seemed to point me to wxPython,
which I'm still using now. However, they seem to think that EasyGUI is
the easiest to learn, but that it suffers on "Maturity, documentation,
breadth of widget selection".

All the best,

Cameron.
 
P

Paul Boddie

Cameron said:
I googled "python gui compare" a while back and got
www.awaretek.com/toolkits.html as the first result.

See also the python.org Wiki for more information:

http://wiki.python.org/moin/UsefulModules
http://wiki.python.org/moin/GuiProgramming (big list!)
Every variation on the values I entered seemed to point me to wxPython,
which I'm still using now. However, they seem to think that EasyGUI is
the easiest to learn, but that it suffers on "Maturity, documentation,
breadth of widget selection".

The figures behind the scenes are quite enlightening for that
particular page. If you (or community experiences) don't agree with the
rankings (wxPython apparently even easier to learn than PythonCard and
Tkinter, a bunch of Gtk-based toolkits having more or less "full" Linux
scores) then you'll have some surprises, I'm sure. Nevertheless, it's
an interesting concept.

Paul
 
P

Peter Decker

Now i began to learn GUI programming. There are so many
choices of GUI in the python world, wxPython, pyGTK, PyQT,
Tkinter, .etc, it's difficult for a novice to decide, however.
Can you draw a comparison among them on easy coding, pythonish design,
beautiful and generous looking, powerful development toolkit, and
sufficient documentation, .etc.
It's helpful for a GUI beginner.
Thank you.

I've used several, and I think that Dabo (http://dabodev.com) is the
best choice. Dabo is an entire application framework, but you can just
use the dabo.ui parts if that's all you need. Then when you are no
longer a beginner and you want to develop more complex apps, you won't
need to change tools.
 
K

Kevin Walzer

Now i began to learn GUI programming. There are so many
choices of GUI in the python world, wxPython, pyGTK, PyQT,
Tkinter, .etc, it's difficult for a novice to decide, however.
Can you draw a comparison among them on easy coding, pythonish design,
beautiful and generous looking, powerful development toolkit, and
sufficient documentation, .etc.
It's helpful for a GUI beginner.
Thank you.


:)Sorry for my poor english.

Tkinter:
Pro: Default GUI library for Python; stable; well-supported
Con: Needs extension for complex/rich GUI's; core widgets are dated in
look and feel; many modern extensions in Tcl/Tk have not made it into
Tkinter or are not widely used (Tile, Tablelist)

wxPython:
Pro: Popular, actively developed, wraps native widgets, looks great on
Windows, commercial-friendly license
Con: Based on C++ toolkit; docs assume knowledge of C++; some think
coding style is too much like C++; complex to build and deploy on Linux
(wraps Gtk)

PyQt:
Pro: Powerful, cross-platform, sophisticated GUI's
Con: Based on C++ toolkit; docs assume knowledge of C++; commercial
deployment is expensive; free deployment must be GPL; smaller
development and user community than wxPython

PyGtk:
Pro: Sophisticated GUI's, cross-platform (Linux and Win32); very popular
on some platforms; active development community
Con: Not native on OS X
 
Ad

Advertisements

C

Christophe

Kevin Walzer a écrit :
Tkinter:
Pro: Default GUI library for Python; stable; well-supported
Con: Needs extension for complex/rich GUI's; core widgets are dated in
look and feel; many modern extensions in Tcl/Tk have not made it into
Tkinter or are not widely used (Tile, Tablelist)
Also, the Tkinter API is far less elegant than the others.
wxPython:
Pro: Popular, actively developed, wraps native widgets, looks great on
Windows, commercial-friendly license
Con: Based on C++ toolkit; docs assume knowledge of C++; some think
coding style is too much like C++; complex to build and deploy on Linux
(wraps Gtk)
See PyQt remarks. And I would add that the coding style is too much like
MFC and Win32 as a con.
PyQt:
Pro: Powerful, cross-platform, sophisticated GUI's
Con: Based on C++ toolkit; docs assume knowledge of C++; commercial
deployment is expensive; free deployment must be GPL; smaller
development and user community than wxPython
Since when is "based on C++ toolkit" a con?
PyGtk:
Pro: Sophisticated GUI's, cross-platform (Linux and Win32); very popular
on some platforms; active development community
Con: Not native on OS X

You forgot that it is rather buggy on Win32 ( in my experience )
 
K

Kevin Walzer

Christophe said:
Since when is "based on C++ toolkit" a con?

If you don't know C++ (as is the case with me), then it's difficult to
do a C++-to-Python translation in looking at code examples.
 
C

Christophe

Kevin Walzer a écrit :
If you don't know C++ (as is the case with me), then it's difficult to
do a C++-to-Python translation in looking at code examples.

As if a toolkit based on C would be much easier.

In fact, I would even say that C++ -> Python is much much easier than C
-> Python for GUI toolkits.
 
F

Fredrik Lundh

Christophe said:
Also, the Tkinter API is far less elegant than the others.

huh? create object, display object, create object, display object.
sure looks like plain old Python to me...

</F>
 
S

shawn

Ron Stevens of the Python411 podcast(1) has some good info on these. He
did an entire podcast(2) comparing different Python GUI tools, and did
several others in greater detail, including specifically on wyPython and
Tkinter. You can also subscribe to the RSS feed(3). The main page has
titles for all of the podcasts and direct links to the mp3s.

Shawn



1. http://www.awaretek.com/python/
2. http://libsyn.com/media/awaretek/Python411_070509_GUItoolkits.mp3
3. http://www.awaretek.com/python/index.xml
 
Ad

Advertisements

K

Kevin Walzer

Christophe said:
Kevin Walzer a écrit :

As if a toolkit based on C would be much easier.

In fact, I would even say that C++ -> Python is much much easier than C
-> Python for GUI toolkits.

Well, Tk isn't *based* on C (it's written in C, but it doesn't wrap a
lower-level GUI framework for C). Tk is my preferred toolkit. But then,
I'm a Tcl developer by background, and less experienced with Python.

For what it's worth, the reason I learned Tcl before Python is because I
wanted to learn a GUI package that was native/specific to the
programming language in question, and Tcl/Tk is the only instance of
this in scripting languages. With Python, as far as I know, every GUI
toolkit in question was developed for another language (Tcl, C/C++,
etc.), and is wrapped by Python. It makes learning GUI programming in
Python a daunting task for a newbie.
 
P

Peter Decker

wxPython:
Pro: Popular, actively developed, wraps native widgets, looks great on
Windows, commercial-friendly license
Con: Based on C++ toolkit; docs assume knowledge of C++; some think
coding style is too much like C++; complex to build and deploy on Linux
(wraps Gtk)

I agree with this assessment. I hated writing the code in wxPython,
since it was very ugly, with tons of getters/setters lots of constants
and ids WRITTEN_IN_ALL_CAPS. Yuck.

That's why I think you and others are doing a grave disservice by
ignoring Dabo. With Dabo, you get the best-looking toolkit across
platforms (wxPython), but a clean, Pythonic API with none of the C++
crud. I've been a dozen times more productive since I switched to
doing my UI code in dabo.ui, and even better, I don't have to
constantly look up the names of the appropriate constants, etc. - the
API is that much more consistent.
 
E

Eric_Dexter

I have to say that py-gtk is a pain to install. You have copywrites
with the various parts of the library when you install all of it with
apple and the people that do the pill library. I am looking at
wxwindows and maybe vpython for graphics (If it will do what I want).
wx.grid is a pain thus far but once you get it seems to work realy
well. You load dabo and then load your program through dabo... That
was all I needed to know to disregard it.

http://www.dexrow.com
 
D

David Boddie

PyQt:
Pro: Powerful, cross-platform, sophisticated GUI's
Con: Based on C++ toolkit;

That's not a bad thing in itself.
docs assume knowledge of C++;

Only to a point. I knew Python before I knew C++, and it didn't stop
me from learning PyQt. Think of it as an easy introduction to C++. ;-)

Actually, when it comes to code snippets and examples for Qt, you
only really need to perform some basic search and replace operations
to get close to the same code in Python:

:: maps to .
-> maps to .
this maps to self
&& maps to and
|| maps to or

and so on. Unless you're just copying the code out of the browser,
it should be fairly straightforward to follow.
commercial deployment is expensive; free deployment must be GPL;

Opinions differ on the first one of these. It's a matter of
perspective.
smaller development and user community than wxPython

Can you back that up with some numbers?

David
 
Ad

Advertisements

C

Christophe

Fredrik Lundh a écrit :
even if you define "expensive" as "costs more money than the others" ?
Even if you consider that the huge time saving you get out of using Qt
is worth more than what you pay to acquire a licence?

That's the idea anyway.
 
C

Christophe

Fredrik Lundh a écrit :
huh? create object, display object, create object, display object. sure
looks like plain old Python to me...

Let's see :

..pack(side = "left")

fred = Button(self, fg = "red", bg = "blue")
fred["fg"] = "red"

fred.bind("<Enter>", turnRed)

Yep, unelegant API I mantain it.

And no modern layout manager available. Only those old school
left/right/up/down pack and anchors are available.
 
Ad

Advertisements

F

Fredrik Lundh

Christophe said:
>
Even if you consider that the huge time saving you get out of using Qt
is worth more than what you pay to acquire a licence?

then it sounds like a combination between "it's a silver bullet!" and
"commercial software is better than free software!".

no matter how good Qt is, the reality is that if you spend that much
time on the UI implementation parts of your project, you're probably
developing at the wrong abstraction level -- no matter what toolkit
you're using. and if you're doing UI development the wrong way, chances
are that you're doing other things the wrong way too.

</F>
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top