Which GUI toolkit is THE best?

I

invitro81

Hello

I've recently learnt python and I do love it! I congratulate all those
geeks who produce this nice language; well, because I could be called a
nearby newbee I've decided to improve my abilities by writing my own
nice editor with python; so I've to choose among all those GUI toolkit's
available there..

But I've no idea which one I should use to start with.. I've read that
tkinter seems to be the de facto standart in the pyhon community; but
why? Is it the best available one or are theire other reasons? I read
also a litte about wxpython and pygtk.. both are appealing to me but
again to make a choice is difficult; is there also some guy liking pyqt
is it worse or should it be avoided because of the licencing policy for
qt (which I also like..)?

* Which one is the most fun to program with?
* Which one is the most easy to learn?
* Which one looks best?
* Which one is the most productive to program with?
 
C

Cell

invitro81 schreef:
Hello

I've recently learnt python and I do love it! I congratulate all those
geeks who produce this nice language; well, because I could be called a
nearby newbee I've decided to improve my abilities by writing my own
nice editor with python; so I've to choose among all those GUI toolkit's
available there..

But I've no idea which one I should use to start with.. I've read that
tkinter seems to be the de facto standart in the pyhon community; but
why? Is it the best available one or are theire other reasons? I read
also a litte about wxpython and pygtk.. both are appealing to me but
again to make a choice is difficult; is there also some guy liking pyqt
is it worse or should it be avoided because of the licencing policy for
qt (which I also like..)?

* Which one is the most fun to program with?
* Which one is the most easy to learn?
* Which one looks best?
* Which one is the most productive to program with?

Read this http://wxpython.org/quotes.php ;-)
 
P

Peter Decker

But I've no idea which one I should use to start with.. I've read that
tkinter seems to be the de facto standart in the pyhon community; but
why? Is it the best available one or are theire other reasons? I read
also a litte about wxpython and pygtk.. both are appealing to me but
again to make a choice is difficult; is there also some guy liking pyqt
is it worse or should it be avoided because of the licencing policy for
qt (which I also like..)?

* Which one is the most fun to program with?
* Which one is the most easy to learn?
* Which one looks best?
* Which one is the most productive to program with?

GUI toolkits are not simple things to be productive with. Most people
I know tried out a few briefly, found one that fit their needs and/or
programming style better, and then adopted that as their choice. Given
the complexity of GUIs in general, developers tend to be 'fluent' in
one at a time - it's just too much to remember when switching between
different kits.

So most of the answers you get will invariably be tilted toward the
choice that an individual made. Their reasons for that choice may not
be the same as your reasons, so my advice to you would be to check
them all out for a few hours apiece, and make a choice based on your
impressions.

Having said that, my choice for UI toolkit is wxPython, based on its
use of native controls on all platforms. I disliked the syntax it
inherited from wxWidgets, the C++ project it is based on, but then I
found Dabo, whose UI layer wraps wxPython, giving you all the power
and beauty of wxPython, with none of the ugliness.
 
E

Eric Brunel

Hello

I've recently learnt python and I do love it! I congratulate all those
geeks who produce this nice language; well, because I could be called a
nearby newbee I've decided to improve my abilities by writing my own
nice editor with python; so I've to choose among all those GUI toolkit's
available there..

But I've no idea which one I should use to start with.. I've read that
tkinter seems to be the de facto standart in the pyhon community; but
why? Is it the best available one or are theire other reasons? I read
also a litte about wxpython and pygtk.. both are appealing to me but
again to make a choice is difficult; is there also some guy liking pyqt
is it worse or should it be avoided because of the licencing policy for
qt (which I also like..)?

* Which one is the most fun to program with?
* Which one is the most easy to learn?
* Which one looks best?
* Which one is the most productive to program with?

It all depends on what features are the most important for you. Here is
some help to answer the question yourself:
http://www.awaretek.com/toolkits.html

HTH
 
T

Thomas Guettler

Am Fri, 10 Mar 2006 13:36:18 +0100 schrieb invitro81:
Hello

I've recently learnt python and I do love it! I congratulate all those
geeks who produce this nice language; well, because I could be called a
nearby newbee I've decided to improve my abilities by writing my own
nice editor with python; so I've to choose among all those GUI toolkit's
available there..

But I've no idea which one I should use to start with.. I've read that
tkinter seems to be the de facto standart in the pyhon community; but
why?

No, tkinter is not the standard. It is justed part of the standard
library.

Here is what I think:

tkinter (or better TK) has no good table widget.

The licence for QT is GPL, this means you cannot use it in commercial
application. That is why I never looked at it.

wx is better than tkinter. But it is big and there are too many
layers: WxPython -> WxWidgets -> gtk
I tried some examples, but it didn't "feel" good.

Now I use pygtk. I code everything, I don't used glade or something
like this.

HTH,
Thomas
 
S

Sybren Stuvel

Thomas Guettler enlightened us with:
The licence for QT is GPL, this means you cannot use it in
commercial application. That is why I never looked at it.

Ehmm... from their website:

The Qt Commercial License is the correct license to use for the
construction of proprietary, commercial software. The license allows
you to:
- Build commercial software and software whose source code you
wish to keep private.
- Freely choose licensing for the software you are writing
(Proprietary, Open Source or both).
- Be able to gain access to Qt Solutions, Trolltech support and
commercial-only Qt components such as commercial database
drivers and the Visual Studio Integration on Windows.

Sybren
 
A

Alan Franzoni

invitro81 on comp.lang.python said:
again to make a choice is difficult; is there also some guy liking pyqt
is it worse or should it be avoided because of the licencing policy for
qt (which I also like..)?

* Which one is the most fun to program with?
* Which one is the most easy to learn?
* Which one looks best?
* Which one is the most productive to program with?

Those are all hard questions. You might as well have asked 'which is the
best web framework'. It's not easy to tell ^_^ It highly depends on which
tasks you're aiming at.

wxPython is a pretty good 'all-round' and cross-platform library, and
includes some non-graphical features. It's got a drawback: it's a wrapper
for the wxwidgets library, and hence it's not very pythonic; you can solve
part of its unpythonicness using wax, which is not very well documented at
the time. wxGlade can be used to design GUI apps with little effort.

pyGTK works well, too. Recent versions perform well and are good looking on
Windows systems as well as Linux and Macs (if you provide an X server).
It's very well documented (better than wxPython, in my opinion) and its
license is quite permissive. It's unpythonic just like wxPython. Glade and
Gazpacho can be used to design GUI apps in a visual way.

pyGUI is a pyGTK-based graphic library which is designed from scratch to be
pythonic. It seems very, very promising but I can't tell you if it's
production-stable since I've tested it just a couple of times. It may be
the funniest and more productive toolkit ever.

FLTK was interesting but seems to lack maintenance and support, pyQT is a
bit 'unfree' for most uses. Tkinter is quite old stuff.

--
Alan Franzoni <[email protected]>
-
Togli .xyz dalla mia email per contattarmi.
Rremove .xyz from my address in order to contact me.
-
GPG Key Fingerprint:
5C77 9DC3 BD5B 3A28 E7BC 921A 0255 42AA FE06 8F3E
 
D

David Boddie

Alan said:
FLTK was interesting but seems to lack maintenance and support,

Looking at the News section of the project's home page, I can see
that updates were few and far between in 2004 and 2005, but the
action seems to have picked up again since:

http://pyfltk.sourceforge.net/#news
pyQT is a bit 'unfree' for most uses.

"Unfree" as in the opposite of freedom, or "unfree" as in the price of
beer?

PyQt for Qt 3 is available under the GNU General Public License on
Mac OS X and Linux. Since Qt 4 can be used under the GPL on all
platforms, you'll even be able to write software on Windows with PyQt4
that's licensed under a GPL-compatible license.

FAQ: http://www.riverbankcomputing.co.uk/pyqt/faq.php
Roadmap: http://www.riverbankcomputing.co.uk/pyqt/roadmap.php
Tkinter is quite old stuff.

But actively supported and promoted:

http://wiki.python.org/moin/TkInter

And I'm sure there are plenty of other solutions that deserve to be
mentioned:

http://wiki.python.org/moin/GuiProgramming

David
 
M

Michael Ekstrand

wxPython is a pretty good 'all-round' and cross-platform library, and
includes some non-graphical features. It's got a drawback: it's a
wrapper for the wxwidgets library, and hence it's not very pythonic;
you can solve part of its unpythonicness using wax, which is not very
well documented at the time. wxGlade can be used to design GUI apps
with little effort.

pyGTK works well, too. Recent versions perform well and are good
looking on Windows systems as well as Linux and Macs (if you provide
an X server). It's very well documented (better than wxPython, in my
opinion) and its license is quite permissive. It's unpythonic just
like wxPython. Glade and Gazpacho can be used to design GUI apps in a
visual way.

I'll throw my two cents in here now.

I've used both wxPython and PyGTK. I find wxPython to be horribly
un-pythonic; combining that some problems on the Mac, and some
other installation/environment issues, I ditched it for PyGTK.

I find PyGTK to be very natural, and actually highly Pythonic. So much
of its design just makes sense. And GTK provides a lot of nice things,
and is itself incredibly versitle (the places you can put odd
widgets...). I've found myself to be more productive with GTK (both
PyGTK and GTKmm) than with any other system I've used (with the
possible exception of web interfaces).

- Michael
 
R

Roger Binns

invitro81 said:
But I've no idea which one I should use to start with..

One thing you'll need to carefully decide is where you want
to end up. The different toolkits have different limits on
where you can go. A simple example is printing. Some don't
support it (eg Tkinter didn't 5 years ago when I last used it).
If you will never need to print then that won't matter.
Generally what you'll find is that the toolkits that let
you do more are harder to get started with because you have
to code in such a way as to let the more complicated features
(eg printing) work, and the documentation is bigger because
there is more to document.

These are some of those areas to consider:

Printing

Can you print? Does the user get to use their operating
system specific dialog boxes to choose printers etc?
As a developer can you find out if the printer is colour
or black and white? What about the paper size?

HTML

Does the toolkit have a way for you to display HTML? How
complicated can the HTML be (eg CSS)? Can you embed widgets
in the HTML?

Threading

Do you have to confine gui operations to one thread? How do
you send a message from a worker thread to the gui thread
(the gui thread will block in an event loop - that event loop
needs to be able to be woken up from other threads)

Native look and feel

Will your users expect a native looking application? Will they
want drag and drop? Do they expect rich objects on the keyboard?
Is the toolkit available for all platforms you would want to
run on (Windows, Linux, Mac, BSD etc) and their variations
(different processors, 32 and 64 bit runtimes)?

OLE

Can you display other applications as a widget within yours?
What about the other way round? Can you script other applications?
(Python actually has the latter available on many platforms without
the need for the gui toolkit to so)

i18n/l10n

Does the toolkit support Unicode? How easy is it to use with
multiple languages?

Additional packages

What additional packages are there for the toolkit? For example
Pmw provides more widgets to tkinter and their are GL packages
for the various toolkits. If you are going to do graphics heavy
stuff you'll want some way of hooking the toolkit with PIL.

There should be some sort of demo available. wxPython has a fantastic
one showing every single widget with code you edit to see what effect
it has.

The documentation should be good as well. Pick a random question such
as "how do I delete all entries in a listbox begining with 'foo'" and
see if you can work it out from the documentation.

There should also be some sort of mailing list and user forums. Look
for helpful answers being given with people being polite.

What I would suggest you do is write a simple application in two or
three different toolkits (eg convert temperature between F and C).
You'll learn various ways of dealing with widget placement and sizers.
(ie what happens if the user makes the containing window larger or
smaller). My suggestions are to try PyGame, Tkinter and wxPython.
You'll be better off having learned lessons from all 3 than just
using one.

The piece of good news is that to my knowledge applications written
using any of the toolkits can be packaged up using tools like
py2exe/py2app/cx_Freeze so that you can redistribute them to other
users and those users will not have to know or care that you used
Python and whatever toolkit.

Roger
 
I

invitro81

You guys are great :) thanx for the plenty answers and suggestions; I've
made my search through a little more and decided to start coding the
same app first with pygtk and second with wxpython.. and perhaps later
with pyqt.
 
T

Thomas Guettler

Am Fri, 10 Mar 2006 16:10:09 +0100 schrieb Sybren Stuvel:
Thomas Guettler enlightened us with:

Ehmm... from their website:

From http://www.trolltech.com/products/qt/licensing.html
The Qt Commercial License is the correct license to use for the
construction of proprietary, commercial software. The license allows
you to:
- Build commercial software and software whose source code you
wish to keep private.
- Freely choose licensing for the software you are writing
(Proprietary, Open Source or both).
- Be able to gain access to Qt Solutions, Trolltech support and
commercial-only Qt components such as commercial database
drivers and the Visual Studio Integration on Windows.

Have you read all the text?

"""
Two qualities of the Qt Commercial License should be emphasized:

You need it before you start development of proprietary software.

You must purchase a Qt Commercial License from Trolltech or from any of
its authorized resellers before you start developing. The Commercial
license does not allow the incorporation of code developed with the Open
Source Edition of Qt into a proprietary product.
"""

There is a GPL version for Linux. But the GPL does not allow linking
with closed source software.
 
S

Sybren Stuvel

Thomas Guettler enlightened us with:
There is a GPL version for Linux. But the GPL does not allow linking
with closed source software.

The availability of a GPL license does not negate the availability of
a commercial license. You can write commercial, closed source software
on Linux using Qt legally.

Sybren
 
P

Paul Boddie

Thomas said:
Have you read all the text?

"""
Two qualities of the Qt Commercial License should be emphasized:

You need it before you start development of proprietary software.

You must purchase a Qt Commercial License from Trolltech or from any of
its authorized resellers before you start developing. The Commercial
license does not allow the incorporation of code developed with the Open
Source Edition of Qt into a proprietary product.
"""

There is a GPL version for Linux. But the GPL does not allow linking
with closed source software.

My understanding of how it all works is this: Trolltech offers you Qt
under the GPL; you can choose to accept the GPL; you then uphold the
GPL in the distribution of your work. Alternatively, you request that
Trolltech license the software to you under the "Qt Commercial
License"; they decide whether or not they want to license it to you; if
they decide "yes", you get to distribute your proprietary software with
the proprietary edition of the product.

What people don't usually understand (or rather complain about loudly)
is that Trolltech can refuse to license Qt to you under the commercial
licence, as is their right as the owner of the copyrighted work. As far
as I know, you can still obtain Qt under the GPL from them in such a
situation, although this is fairly academic since there are lots of
people offering Qt under the GPL in a variety of GNU/Linux
distributions, for example. Usually, the people making a fuss about all
this have already licensed Qt under the GPL, however, and believe that
they have a right to "switch over" to another licence, but neither the
GPL nor any basic aspect of copyright practice supports such a notion.

So, yes, you either say up front that you're developing proprietary
software and buy into that special deal with the copyright holder, or
you don't. Of course, you could try and distribute non-commercial,
evaluation, trial, educational-use-only, non-redistributable or
NDA-affected versions of your favourite proprietary software products
and see which court of law that takes you to - in these debates nobody
seems to ask themselves whether Bill Gates and/or Steve Jobs would let
you switch around, slip out of that NDA, give you special upgrades,
strike through clauses in that EULA, and so on down the list of things
that nobody thought about when putting together that now-shaky business
model.

Paul
 
P

Paul Rubin

Paul Boddie said:
What people don't usually understand (or rather complain about loudly)
is that Trolltech can refuse to license Qt to you under the commercial
licence, as is their right as the owner of the copyrighted work.

What is the deal here? Why would they refuse, to someone willing to
pay the commercial license fee? They are a business, and as such,
they presumably like gettng money. And someone wanting to develop a
proprietary app with Qt that users have to pay for, shouldn't mind
paying Trolltech for the commercial Qt license.
 
C

Chris Mellon

What is the deal here? Why would they refuse, to someone willing to
pay the commercial license fee? They are a business, and as such,
they presumably like gettng money. And someone wanting to develop a
proprietary app with Qt that users have to pay for, shouldn't mind
paying Trolltech for the commercial Qt license.
--

Qt (commercial) licensing is a subscription - you pay per developer
per year - so an obvious thing for people to attempt (and I have no
idea if this has been tried, but I wouldn't doubt it) is for a company
to download the GPL version, develop the application internally, and
then purchase 1 license when they're ready to ship. This would
seriously bite into TTs income and they aren't interested in allowing
you do this, so while you're free to download the GPL version and
develop all you want, TT won't sell you a commercial license "after
the fact" like this.
 
P

Paul Boddie

Paul said:
What is the deal here? Why would they refuse, to someone willing to
pay the commercial license fee? They are a business, and as such,

Well, I can't answer for them in any sense (and I should ask you to
substitute any company with a similar business model for Trolltech in
the text, along with accompanying product names, in order to emphasize
the mere speculative nature of my explanation), but all I was trying to
do was to explain the pattern of behaviour that goes something like
this:

1. Developer downloads Qt GPL edition.
2. Developer develops product based on Qt.
3. Some time later, with finished product, developer now wants
to release a closed source version of the product.
4. Developer approaches Trolltech and asks for a commercial
licence in order to ship a closed source product.

Now, since the commercial licence is "per developer", some cunning
outfit could claim that only one developer wrote their product (rather
than one hundred developers, say), but this would be a fairly big
breach of trust (although nothing unusual in the world of commerce, I'm
sure). Would a business making software for other such businesses care
about such things? What kind of recourse would they have?
they presumably like gettng money. And someone wanting to develop a
proprietary app with Qt that users have to pay for, shouldn't mind
paying Trolltech for the commercial Qt license.

It's the "after the fact" switching from GPL to commercial licensing,
rather than the up-front "wanting to develop" scenario, that would be
difficult for anyone issuing commercial licences to monitor. Trolltech
specifically mention "exposure to the GPL" on their "open source
downloads" page presumably (and again I speculate, so beware!) to
suggest that if you want to end commercial, you need to start
commercial:

http://www.trolltech.com/download/opensource.html

I don't see why anyone planning to make big bucks on proprietary
software can't shell out for the technology which would make their
success possible, either. But anyway, the key part of my explanation
was that the copyright holder can always refuse to license their work
to you. Obviously, if they've already licensed it to you under the GPL,
you'll always have that kind of permission.

Paul
 
A

ahart

i'm pretty much a newbie, too, and have been dabbling with some gui
tools

so far, i like pythoncard pretty well

it wraps wxpython and seems to be pretty easy to use
 
A

Antoon Pardon

Op 2006-03-13 said:
Well, I can't answer for them in any sense (and I should ask you to
substitute any company with a similar business model for Trolltech in
the text, along with accompanying product names, in order to emphasize
the mere speculative nature of my explanation), but all I was trying to
do was to explain the pattern of behaviour that goes something like
this:

1. Developer downloads Qt GPL edition.
2. Developer develops product based on Qt.
3. Some time later, with finished product, developer now wants
to release a closed source version of the product.
4. Developer approaches Trolltech and asks for a commercial
licence in order to ship a closed source product.

Now, since the commercial licence is "per developer", some cunning
outfit could claim that only one developer wrote their product (rather
than one hundred developers, say), but this would be a fairly big
breach of trust (although nothing unusual in the world of commerce, I'm
sure). Would a business making software for other such businesses care
about such things? What kind of recourse would they have?

I wonder what this "per developer" means. Suppose ten people are working
on a product. But only one person is working on the GUI and comes into
contact with the Qt widget. Is that one or ten developers that are
counted for the license?
 

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

Members online

No members online now.

Forum statistics

Threads
473,755
Messages
2,569,536
Members
45,009
Latest member
GidgetGamb

Latest Threads

Top