473,614 Members | 2,328 Online
Bytes | Software Development & Data Engineering Community
+ Post

Home Posts Topics Members FAQ

What GUI toolkit looks the best?

I've been approached about writing a Windows app which will need a
really professional looking GUI. Forget TKinter, this has to actually
look good (real artists will be available to get the visual stuff
right). Assuming I write in Python, what's the best toolkit to use?
Some cost in implementation pain is tolerable if the finished
interface looks better as a result. It would be nice if the toolkit
runs on multiple platforms rather than being Windows-only.

I'm thinking Glade. Is that reasonable? I don't know squat about
Windows and haven't done much fancy GUI programming since the early X
days.

Thanks.
Jul 18 '05 #1
53 6429
Paul Rubin wrote:
I've been approached about writing a Windows app which will need a
really professional looking GUI. Forget TKinter, this has to actually
look good (real artists will be available to get the visual stuff
right). Assuming I write in Python, what's the best toolkit to use?
Some cost in implementation pain is tolerable if the finished
interface looks better as a result. It would be nice if the toolkit
runs on multiple platforms rather than being Windows-only.
Why forget Tkinter? I've seen Tkinter applications that look incredibly
fabulous. A lot depends on what you are trying to do. If you are
making a graphics-heavy application then Tkinter's canvas is pretty
sweet. I also think IDLE looks pretty good.
I'm thinking Glade. Is that reasonable? I don't know squat about
Windows and haven't done much fancy GUI programming since the early X
days.


Glade isn't a GUI, it is a GUI builder that uses GTK. In my experience,
GTK doesn't look quite right on windows boxes, especially the menus. Of
course I have the same basic view of Qt and Swing so know you know my
biases.

I tend to use Tkinter for canvas heavy applications and wxPython for
other stuff.

As for application building, here are my rankings
1 Emacs :)
2 Glade with libglade and Mitch Chapman's python libglade wrapper
3 BlackAdder with Qt
4 Boa-constructor (largish learning curve here I think)
5 wxGlade (layout isn't quite right)

So let me ask what kind of application are you building?

The bottom line is that I have seen great looking and really poor
looking apps in all of these gui's.

Here is my humble opinions in a nutshell (missing a lot here): wxPython
has a grid control to die for and many, many classes, good printer
support and looks like a native GTK app on Linux and a native app on
windows and macintosh. Qt is better for developing - it has a better
class structure and I tend not to have to look up docs as often and can
look really, really nice. Tkinter has a killer canvas and great
postscript output. GTK is really quite fast.

but don't take my word for this, why don't you see what you like the best?

http://www.wxpython.org/
http://www.gtk.org/
http://www.scriptics.com/
http://www.trolltech.com/

Speaking of Qt, does anyone want to make a python binding to jakasha?
http://www.jahshaka.com/

Brian

Jul 18 '05 #2
In article <od_Bb.500677$H S4.3867626@attb i_s01>,
Brian Kelley <bk*****@wi.mit .edu> wrote:
Paul Rubin wrote:
I've been approached about writing a Windows app which will need a
really professional looking GUI. Forget TKinter, this has to actually
look good (real artists will be available to get the visual stuff
right). Assuming I write in Python, what's the best toolkit to use?

Jul 18 '05 #3
cl****@lairds.c om (Cameron Laird) writes:
Paul, I certainly can understand your dismissal of Tkinter
as it's commonly employed. Are you aware, though, of <URL:
http://tcl.projectforum.com/tk/Home > and <URL:
http://mini.net/tcl/10424 >? Tkinter might, in fact, best
meet your requirements.


No I'm not. I wrote one tkinter application just to try it out and
while it was nice for putting up a quick and dirty gui, it looked very
crude and the API was also quite inflexible. I clicked the first of
those two url's and it seems to be an in-progress discussion about how
to rework tcl to fix its limitations, but I don't want to rely on
something that's not yet already working. Thanks though.
Jul 18 '05 #4
P
Brian Kelley wrote:
Paul Rubin wrote:
I've been approached about writing a Windows app which will need a
really professional looking GUI. Forget TKinter, this has to actually
look good (real artists will be available to get the visual stuff
right). Assuming I write in Python, what's the best toolkit to use?
Some cost in implementation pain is tolerable if the finished
interface looks better as a result. It would be nice if the toolkit
runs on multiple platforms rather than being Windows-only.

Why forget Tkinter? I've seen Tkinter applications that look incredibly
fabulous. A lot depends on what you are trying to do. If you are
making a graphics-heavy application then Tkinter's canvas is pretty
sweet. I also think IDLE looks pretty good.
I'm thinking Glade. Is that reasonable? I don't know squat about
Windows and haven't done much fancy GUI programming since the early X
days.

Glade isn't a GUI, it is a GUI builder that uses GTK. In my experience,
GTK doesn't look quite right on windows boxes, especially the menus. Of
course I have the same basic view of Qt and Swing so know you know my
biases.

I tend to use Tkinter for canvas heavy applications and wxPython for
other stuff.

As for application building, here are my rankings
1 Emacs :)
2 Glade with libglade and Mitch Chapman's python libglade wrapper


Freaky. I've been using something VERY similar for the last 2 years.
An example of my libglade.py usage is at:
http://www.pixelbeat.org/talks/pygtk/mail/
Great minds think alike I suppose :-)

Pádraig.

Jul 18 '05 #5
In article <7x************ @ruckus.brouhah a.com>,
Paul Rubin <http://ph****@NOSPAM.i nvalid> wrote:
cl****@lairds. com (Cameron Laird) writes:
Paul, I certainly can understand your dismissal of Tkinter
as it's commonly employed. Are you aware, though, of <URL:
http://tcl.projectforum.com/tk/Home > and <URL:
http://mini.net/tcl/10424 >? Tkinter might, in fact, best
meet your requirements.


No I'm not. I wrote one tkinter application just to try it out and
while it was nice for putting up a quick and dirty gui, it looked very
crude and the API was also quite inflexible. I clicked the first of
those two url's and it seems to be an in-progress discussion about how
to rework tcl to fix its limitations, but I don't want to rely on
something that's not yet already working. Thanks though.


I persist at this out of concern that I'm not making things clear.
My stake, incidentally, is that you be successful, not that you
use any particular toolkit.

The second URL gives working code that you can use immediately in
your own applications to improve their appearance. This is not an
extension or anything at all difficult or constraining; it's just
a little prologue that refines the standard Tkinter appearance.
It *is* in use, right now, in several applications that must have
professional appearances. The first URL is about committee work,
essentially, that will fold the enhancements of the second URL
back into the standard Tk distribution.
--

Cameron Laird <cl****@phaseit .net>
Business: http://www.Phaseit.net
Jul 18 '05 #6
Brian Kelley <bk*****@wi.mit .edu> writes:
Why forget Tkinter? I've seen Tkinter applications that look
incredibly fabulous.
Got any url's for screen shots?
A lot depends on what you are trying to do. If
you are making a graphics-heavy application then Tkinter's canvas is
pretty sweet. I also think IDLE looks pretty good.
There will be some graphical icons and stuff like that which people
will click on, but no really heavy graphics or drawing tools in the
sense of a photo editor or anything like that.
Glade isn't a GUI, it is a GUI builder that uses GTK. In my
experience, GTK doesn't look quite right on windows boxes, especially
the menus. Of course I have the same basic view of Qt and Swing so
know you know my biases.
Oh ok, I understand a bit better now.
I tend to use Tkinter for canvas heavy applications and wxPython for
other stuff.
Is wxPython Windows specific? I guess it is, but can I port the
screen layouts to some comparable Linux toolkit or anything like that?
The screen shots for it do look really nice.
Here is my humble opinions in a nutshell (missing a lot here):
wxPython has a grid control to die for and many, many classes, good
printer support and looks like a native GTK app on Linux and a native
app on windows and macintosh.
Oh wow, yes I guess it's cross platform then. Hmm, what Micro$oft
tool do I need to build and run it? Is Visual C++ enough? I guess
I can get the client to pay for some stuff like that. Also, is there
a Glade-like drag and drop gui editor for it?
Qt is better for developing - it has a better class structure and I
tend not to have to look up docs as often and can look really,
really nice.
The KDE apps that I've seen look good but not really top notch. Maybe
more attention could improve them. They're certainly good enough for
practical use.
Tkinter has a killer canvas and great postscript output. GTK is
really quite fast.
I think I don't care about heavy duty graphics or more than rudimentary
printing.
but don't take my word for this, why don't you see what you like the best?

http://www.wxpython.org/
http://www.gtk.org/
http://www.scriptics.com/
http://www.trolltech.com/


I don't know what I can really tell from these without more experience
with them. In particular, which is the most solid and reliable across
a wide range of Windows versions (95, 98, ..., XP whatever)? That
matters too.

Thanks!

Paul
Jul 18 '05 #7
cl****@lairds.c om (Cameron Laird) writes:
I persist at this out of concern that I'm not making things clear.
My stake, incidentally, is that you be successful, not that you
use any particular toolkit.

The second URL gives working code that you can use immediately in
your own applications to improve their appearance. This is not an
extension or anything at all difficult or constraining; it's just
a little prologue that refines the standard Tkinter appearance.
It *is* in use, right now, in several applications that must have
professional appearances. The first URL is about committee work,
essentially, that will fold the enhancements of the second URL
back into the standard Tk distribution.


Oh cool. The second screen shot on that page ("after") does look a
lot better than the "before" shot. I guess I'll look at it more
carefully, but Tkinter has always made me cringe because of its use of
tcl (why does it need its own extension language if Python itself is
supposed to be such a good one)? Thanks.
Jul 18 '05 #8
Paul Rubin wrote:
Here is my humble opinions in a nutshell (missing a lot here):
wxPython has a grid control to die for and many, many classes, good
printer support and looks like a native GTK app on Linux and a native
app on windows and macintosh.

Oh wow, yes I guess it's cross platform then. Hmm, what Micro$oft
tool do I need to build and run it? Is Visual C++ enough? I guess
I can get the client to pay for some stuff like that. Also, is there
a Glade-like drag and drop gui editor for it?


None. Just download the wxpython binaries and away you go. If you want
to build from scratch Visual C++ is enough. wxGlade is a good designer
although it does have some warts. wxDesigner is good as well, although
not free.
http://www.wxpython.org/

wxGlade
http://wxglade.sourceforge.net/

wxDesigner
http://www.roebling.de/

And join the wxpython mailing list. You'll be glad that you did.
Brian

Jul 18 '05 #9
I have a lot of experience with both wxPython and Tkinter. I would urge
caution regarding any quick judgments. All cross-platform toolkits have
significant bugs and design flaws.

My experience is that Tkinter is the "least bad" and more flexible.
wxPython (of course) inherits all the _many_ bugs in wxWindows. It's not
clear that wxWindows really actually works. Whenever I use
wxPython/wxWindows I find more bugs in a week than I have found in 3+ years
with Tk/Tkinter. YMMV. The (admittedly very cool) wxPython demo regularly
segfaults on Windows. Sheesh.

The main point is that some real experimentation (and risk!) is going to be
required for any significant project. You may as well budget some time for
frustration: it _is_ going to be there.

Just one example of what you might expect. My app uses a Text widget in
many non-trivial ways. Both Tkinter/Tk and wxPython/wxWindows have
seemingly minor, but actually _major_ problems with Text widgets.

Tk "helpfully" adds a newline at the end of text widgets in various
situations, which leads to no end of complications in my app. I wish Tk
would just _buzz off_ and not mess with my data. But noooooo.

The wxWindows Text widget, OTOH, uses an absolutely brain-dead api that
exposes platform-specific line endings. The complications become truly
horrendous for serious work: there is no proper model behind Text offsets.

Actually, both Tkinter and wxPython totally suck regarding offsets into text
widgets. One would like integer offset in the text widget to be _identical
in all respects_ with the integer offset into the Python strings that one
passes to and receives from these widgets. But nooooooo... I call this the
"cursed offset problem", which is really a special case of the "cursed
newline problem" :-)

In short, any cross-platform gui is going to cause you unexpected problems.
I'm not saying "don't use these tools". I am saying: "be prepared for nasty
surprises".

Edward

P.S. The idea that Tk is going to be "revitalize d" any time soon is a
yawner, IMO. Wake me up when it happens.

EKR
--------------------------------------------------------------------
Edward K. Ream email: ed*******@chart er.net
Leo: Literate Editor with Outlines
Leo: http://webpages.charter.net/edreamleo/front.html
--------------------------------------------------------------------
Jul 18 '05 #10

This thread has been closed and replies have been disabled. Please start a new discussion.

Similar topics

12
3256
by: Liberal | last post by:
There are a few in Perl and PHP, with MySQL or without and either in Mod_Perl or not in. I have heard mason, but it does not have any demo site, but claims, AMAZON is using it. I also like PostNuke, but then there is a sister product caled PHPNuke I am looking for something simple but with a lot of plug-ins. I will not use many features, but like to have BBS/Forum and Classified Ads. I want it
12
12651
by: Tom | last post by:
1) Portable to Windows, Unix-like platforms, and the Macintosh; 2) Powerful, GUI is very beautiful ; 3) Efficiency of development is high; What's the best, Tkinter, wxPython, QT, GTK or other? Thanks!
15
12717
by: Jim | last post by:
This is probably a common question - What is the best CSS editor? I'm an old HTML dinosaur that just getting into CSS. My HTML editor from way back is Homesite. They (Macromedia) tout Topstyle Pro but I wonder what the professionals use.
9
1463
by: Sasha | last post by:
Hi, I am extending standard IEnumerator, and I was just wondering what is the best way to make enumarator safe? What do I mean by safe? Detect deletes and all... My idea is to have private Guid state field in the collection, and every time something is inserted or deleted from the collection, I will just change the guid. Enumerator will just have to compare the guid received in the begging to the current one. If they are different, the...
22
5631
by: vietor.liu | last post by:
is this? int hashpjw(char* str,int size) { unsigned long h=0,g; for(unsigned char *p=(unsigned char*)str;*p;++p) { h=(h<<4)+*p; if(g=(h&0xf0000000)) {
3
1822
by: keithb | last post by:
It has been years since I worked with ASP, having moved on to ASP.NET. However, I have just inherited a project adding some enhancements to an existing ASP site. What is the best tool to use for debugging ASP pages these days? Thanks, Keith
5
12773
by: darthghandi | last post by:
I've created a class to listen to all interfaces and do a BeginAccept(). Once it gets a connection, it passes the connected socket off and stores it in a List. Next, it continues to listen for more incoming connections and does the BeginAccpet() again. It does an infinite loop this way. My question is: What is the best way to stop this? I thought about putting a boolean in there, but then what if it's still waiting for an incoming...
2
1484
by: Paulo Roberto | last post by:
Hi, I have a VS2005 asp.net 2.0 C# application with a lot of screens just like customers, companys, manufacturers wich has always the same basics working like a gridview showing the records, and the basic functions: inserting, editing and deleting records from tables... What is the best method to do/optimize that? Creating each .aspx ? Because what most changes is the fields tables... what do you suggest? Thanks
5
4284
by: Stef Mientki | last post by:
Abah Joseph wrote: I agree about the Qt-license, and I'm now a happy wxPython user. cheers, Stef
0
8198
marktang
by: marktang | last post by:
ONU (Optical Network Unit) is one of the key components for providing high-speed Internet services. Its primary function is to act as an endpoint device located at the user's premises. However, people are often confused as to whether an ONU can Work As a Router. In this blog post, we’ll explore What is ONU, What Is Router, ONU & Router’s main usage, and What is the difference between ONU and Router. Let’s take a closer look ! Part I. Meaning of...
0
8142
by: Hystou | last post by:
Most computers default to English, but sometimes we require a different language, especially when relocating. Forgot to request a specific language before your computer shipped? No problem! You can effortlessly switch the default language on Windows 10 without reinstalling. I'll walk you through it. First, let's disable language synchronization. With a Microsoft account, language settings sync across devices. To prevent any complications,...
0
8642
Oralloy
by: Oralloy | last post by:
Hello folks, I am unable to find appropriate documentation on the type promotion of bit-fields when using the generalised comparison operator "<=>". The problem is that using the GNU compilers, it seems that the internal comparison operator "<=>" tries to promote arguments from unsigned to signed. This is as boiled down as I can make it. Here is my compilation command: g++-12 -std=c++20 -Wnarrowing bit_field.cpp Here is the code in...
0
8591
jinu1996
by: jinu1996 | last post by:
In today's digital age, having a compelling online presence is paramount for businesses aiming to thrive in a competitive landscape. At the heart of this digital strategy lies an intricately woven tapestry of website design and digital marketing. It's not merely about having a website; it's about crafting an immersive digital experience that captivates audiences and drives business growth. The Art of Business Website Design Your website is...
1
8294
by: Hystou | last post by:
Overview: Windows 11 and 10 have less user interface control over operating system update behaviour than previous versions of Windows. In Windows 11 and 10, there is no way to turn off the Windows Update option using the Control Panel or Settings app; it automatically checks for updates and installs any it finds, whether you like it or not. For most users, this new feature is actually very convenient. If you want to control the update process,...
1
6093
isladogs
by: isladogs | last post by:
The next Access Europe User Group meeting will be on Wednesday 1 May 2024 starting at 18:00 UK time (6PM UTC+1) and finishing by 19:30 (7.30PM). In this session, we are pleased to welcome a new presenter, Adolph Dupré who will be discussing some powerful techniques for using class modules. He will explain when you may want to use classes instead of User Defined Types (UDT). For example, to manage the data in unbound forms. Adolph will...
0
4058
by: TSSRALBI | last post by:
Hello I'm a network technician in training and I need your help. I am currently learning how to create and manage the different types of VPNs and I have a question about LAN-to-LAN VPNs. The last exercise I practiced was to create a LAN-to-LAN VPN between two Pfsense firewalls, by using IPSEC protocols. I succeeded, with both firewalls in the same network. But I'm wondering if it's possible to do the same thing, with 2 Pfsense firewalls...
1
1758
muto222
by: muto222 | last post by:
How can i add a mobile payment intergratation into php mysql website.
0
1438
bsmnconsultancy
by: bsmnconsultancy | last post by:
In today's digital era, a well-designed website is crucial for businesses looking to succeed. Whether you're a small business owner or a large corporation in Toronto, having a strong online presence can significantly impact your brand's success. BSMN Consultancy, a leader in Website Development in Toronto offers valuable insights into creating effective websites that not only look great but also perform exceptionally well. In this comprehensive...

By using Bytes.com and it's services, you agree to our Privacy Policy and Terms of Use.

To disable or enable advertisements and analytics tracking please visit the manage ads & tracking page.