Download your favorite Linux distribution at LQ ISO.
Go Back > Forums > Non-*NIX Forums > Programming
User Name
Programming This forum is for all programming questions.
The question does not have to be directly related to Linux and any language is fair game.


View Poll Results: Choose the GUI toolkit u prefer for open-source desktop applications
GTK (include other language bindings) 12 42.86%
Qt (include other language bindings) 16 57.14%
Voters: 28. You may not vote on this poll

  Search this Thread
Old 09-16-2007, 04:55 AM   #1
Registered: Jun 2005
Posts: 167

Rep: Reputation: 30
Post Which your favorite GUI toolkit?


I'm interested in knowing which GUI toolkit most of you use for developing open-source desktop applications for GNU/Linux.

So vote without considering the licensing differences between GTK and Qt for closed-source applications.

GTK includes all other language binding like pyGTK.
Qt includes all other language binding like pyQt.

When you choose the other toolkits, please specify the toolkit and the reason why you prefer it over GTK and Qt.
Old 09-16-2007, 06:45 AM   #2
Registered: Jun 2005
Posts: 167

Original Poster
Rep: Reputation: 30
This poll is not just about the numbers. I'm trying to understand the positives and negatives of why people choose a particular GUI toolkit.

So please post the reason for your choice along with your votes.

I choose Qt because it is a C++ library so provides better OO facilities. I know there are C++ bindings for GTK but I prefer using a toolkit with a language it was made to work on by default.

Last edited by; 09-16-2007 at 06:50 AM.
Old 09-19-2007, 08:12 AM   #3
Registered: Jun 2005
Posts: 167

Original Poster
Rep: Reputation: 30
No one is voting here.

Is this a bad poll? If so why do you feel so?
Old 09-19-2007, 08:53 AM   #4
Amigo developer
Registered: Dec 2003
Location: Germany
Distribution: Slackware
Posts: 4,855

Rep: Reputation: 547Reputation: 547Reputation: 547Reputation: 547Reputation: 547Reputation: 547
Maybe folks think it is just another invitation to a flaming.
I personally like GTK/C just fine and wish everything else would go away! KDE/QT is bloated, gnome is never finished, python is too slow -even GTK2 is too slow and bloated for my hardware.
I have read and followed some of your tutorials on Glade/GTK and am very grateful for them.
I know my opinion is not very valuable, nor shared by many. GTK-1.2 had a 'couple' of 'well known' bugs and lacks support for UTF-8. Why couldn't they have just fixed the bugs, added UTF-8 support and leave us alone about completely re-writing the API and adding all the bloat?
I use my own desktop environment which uses all GTk-1.2 apps and keep all python, gnome, and QT stuff off my system.
You might be the perfect man to help on a project to revive the old GTK-libs, something like 'GTK-reborn'.
On a more practical note -it would seem that everything must be written in QT these days if you are to get included or used in most distros, though if ubuntu wins a good market share with the Dell computers gnome could still be a good bet.
I think we've all gotten carried away with feature-bloat. Does your system boot to the desktop faster than it used to?
Don't think I'm being crabby with you -just wanted to answer your thread in the hopes that others might do the same...
Old 09-19-2007, 09:02 AM   #5
Registered: Jun 2005
Posts: 167

Original Poster
Rep: Reputation: 30
I did not intend any flaming. I just want to understand what people like in each toolkit, which makes them to prefer it. Based on the comments I want to learn the toolkit which has features which I like.
Old 09-19-2007, 12:44 PM   #6
Registered: Apr 2002
Location: Windsor, ON, CA
Distribution: Ubuntu
Posts: 740

Rep: Reputation: 32
I chose GTK+, but I feel it neccessary to point out that I still have yet to give Qt a fair chance. I mostly program in C and most of my C++ work is limited to SDL stuff, so I've never had a good reason to use Qt. I know there is C bindings to Qt, but if I am going to learn Qt, I want to do it with C++.

As for your reasoning that Qt was made for OO, so it is better used in C++, I feel the need to point out that GTK+ is, even in C, object oriented. GObject provides mechanisms for inheritance, interfaces, polymorphism, and all that other fun OO stuff. GTK+ was written to be language-agnostic. It ports very well to pretty much any language, which is truly awesome. They have definitely met their goal in this respect. In every OO language I've used it in (C++, Ruby, Java, .NET, etc.), it has always made use of features unique to that language and meshes well with the common language paradigms.

In terms of memory usage, I don't use Qt or GTK+ on a mobile device, and any computer made in the last 10 years will run either fine, so I wouldn't attribute that to my decision. I think THE reason I use GTK+ is that I use Gnome, and I like all my apps to look the same. Aesthetics are always important!
Old 09-20-2007, 03:34 AM   #7
LQ Newbie
Registered: Jul 2006
Location: Canberra Australia
Posts: 28

Rep: Reputation: 16
I chose QT because I've had experience with it and from a development point of view, it's very tractable and easy get started with. Also its mostly multi-platformed (if this is a consideration for you.) But this opinion is not well qualified as I've never had the opportunity to work with GTK. I'd like to because c is my development language of choice.
Is this a bad poll?
No. This is good. I've often wondered what programmer types think about this.
Old 10-02-2007, 01:32 AM   #8
LQ Newbie
Registered: Mar 2006
Location: Kuala Lumpur, Malaysia (American exile)
Distribution: Debian, SuSE and Yellow Dog
Posts: 6

Rep: Reputation: 0
From a purely technical perspective, Qt wins hands-down. Historically, GNOME only exists because, at the time, Qt wasn't ideologically free enough to suit the GNU activists.

Qt has a very coherent API and object model; any knowledge you gain in one area is easily leveraged in others. Particularly with the "native" C++ bindings, it takes advantage of object-oriented development to a) encourage you to be a better programmer and b) automate quite a lot of the grunt work involved in making C-derived programming work (e.g., memory/resource deallocation).

GNOME, from what I have seen of it in C, C++ and Python, is more a haphazard agglomeration of pieces; somebody thought "Hey, I'll implement *this* piece *this* way, and if other similar or competing things do things differently, oh well!" GNOME naturally appeals much more to the hackish mentality of someone who just wants to get a New Thing done so he can use it and/or show it off. This is great for small projects but fails to scale effectively (witness the recent glacial pace of GNOME UI improvement). GNOME also has an odd philosophy towards "ease of use", arguably making the 'finished' product "easier to use" for the Windows-class "luser", but completely expert-proof. Admittedly, this is not a failing so much of the APIs as the GUI implementation philosophy, but the long-running campaign to conflate the two has succeeded too well for my tastes.
Old 10-02-2007, 02:18 AM   #9
Registered: Apr 2002
Location: Windsor, ON, CA
Distribution: Ubuntu
Posts: 740

Rep: Reputation: 32
jdickey, I have never felt, while coding GTK+, that it was haphazardly mismashed together. Any specific examples? (Lets also separate Qt and KDE and GTK+ and GNOME.)

I must say though, I do agree with many of GNOME's ideas on interface design. Take a look at GNOME Human Interface Guidelines, they're quite sensible. For some reason, there is this idea that they want to simply cater to the non-power user. This is not true, rather the idea is to keep in mind who you are writing the software for and cater to them. GNOME is suppose to be a desktop for everyone, not just linux geeks. As such, it should allow anyone to do what they want to do, without making them feel like they're in "foreign territory." This is a great goal, I love watching my friends jump on my computer and start using right away, without even having to ask where "Internet Explorer" is, or something like that (most of the config options are still there, the more confusing ones are just a little harder to find unless you know where you're looking). I, also, like the simplicity. I used to have a lot of time on my hands, so I would always take the hardest route anywhere. Now that I'm always busy, I'm starting to really appreciate software like GNOME and distros like Ubuntu (coming from Fluxbox and LFS). However, if this is not for you, you do have a choice! Just use KDE if you want to. No point in worrying about GNOME. GNOME has its ideals, many of which I agree with, but both desktops have their benefits, and it really comes down to personal choice in the end. I don't think using terms like "luser" is appropriate (or very nice). Can't we all just get along?

Last edited by 95se; 10-02-2007 at 02:24 AM.
Old 10-02-2007, 04:00 AM   #10
Caesar Tjalbo
Registered: Aug 2006
Location: Ņuņoa
Distribution: Aptosid
Posts: 93

Rep: Reputation: 16
Originally Posted by View Post
... I'm trying to understand the positives and negatives of why people choose a particular GUI toolkit.

So please post the reason for your choice along with your votes.
QT because I prefer KDE. No flaming intended, just personal preference.

When I started with Linux I started with GNOME because it sounded cooler than KDE. I tried KDE almost immediately because from what I'd read about Linux it was all about choice and trying alternatives and it seemed like an incredible experiment to not only get my first distro working but even with 2 windowmanagers (except it was almost disappointingly simple).

I'm not an expert in programming with QT so there's no point in learning another library yet. If I'll ever make software interesting enough to publish, I intend to provide it with different UIs because GTK apps aren't super in KDE so I assume QT apps aren't perfect in GNOME (*). I focus on separating logic and UI, mostly developing functionality first with just a commandline interface, so adding different GUIs shouldn't be too difficult.
My own programs are very simple so the UI can be simple too but I wish there are more programs where you could choose the GUI base. I know it's ridiculous and impossible to ask for a QT based GIMP (or a GTK+ based Krita for that matter) but I would very much appreciate it.

(*) it's in the little things, dialogs and cursor placement (in a GNOME app I need to aim more precise to select text, for example) etc.
Old 10-02-2007, 04:15 AM   #11
LQ Newbie
Registered: Jul 2005
Location: Vienna
Distribution: SLES 9, SLES 10, SuSE 8.2, SuSE 9.3, Fedora 6, Planet CCRMA
Posts: 2

Rep: Reputation: 0
I like both.

QT is native C++ and has a well designed interface, it's sufficiently fast and easy to use. What I don't like that much is the precompiler step before compilation and the licensing model which prevents QT from beeing used in some projects at my company.

GTK on the other hand has some nice features but its native C, so we use GTKmm, the C++ bindings, which are good designed and take some modern approaches for C++ programming and don't need a precompiler. What I don't like is that it is somewhat slower than QT, it's not native C++ and that it is spread across a large number of libraries. If you want to distribute an application, it is best to link it in statically because otherwise you get killed from the customer because of library dependencies on installation.

So for open source I would use QT while for commercial applications I would use GTKmm.

Forgot to mention: the QT designer is rather good for designing GUI's, even more complex ones. Glade for GTK is rather basic and doesn't suit my needs very well.

Last edited by oswaldm; 10-02-2007 at 04:16 AM.
Old 10-02-2007, 04:48 AM   #12
Registered: Sep 2007
Location: Berlin
Distribution: Slackware
Posts: 509

Rep: Reputation: 41
I actually started to use Mozilla as a GUI development environment to experiment with it. (See Songbird and Komodo if you just think of "browser"..)

Otherwise, I prefer Gtk, simply because I just never liked KDE and avoided even having Qt and therefore (bluntly ignorant) never took a deeper look into it.

As my privately preferred binding is Perl, Gtk is well enough supported for my stuff and if not, I'm able to fiddle my needs in if I have to.

And for me goes the same as Caesar mentioned for Qt: Gtk does all I need and I want, so I never had a reason to change to Qt.

And as all companies I worked for have been Gtk environments, my Gtk preference is reinforced over and over again.


Thread Tools Search this Thread
Search this Thread:

Advanced Search

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is Off
HTML code is Off

Similar Threads
Thread Thread Starter Forum Replies Last Post
Choosing an appropriate GUI-toolkit max_sipos Programming 11 04-21-2005 07:42 AM
recommended GUI toolkit for use with python servnov Programming 4 01-02-2005 06:13 PM
GUI toolkit for Linux options? servnov Linux - General 1 10-11-2004 11:36 PM
Cross Compiling FOX GUI Toolkit Akuma no Houkon Programming 0 06-07-2004 04:01 PM
best gui toolkit paulr1984 Programming 4 04-03-2004 06:17 AM > Forums > Non-*NIX Forums > Programming

All times are GMT -5. The time now is 07:05 PM.

Main Menu
Write for LQ is looking for people interested in writing Editorials, Articles, Reviews, and more. If you'd like to contribute content, let us know.
Main Menu
RSS1  Latest Threads
RSS1  LQ News
Twitter: @linuxquestions
Facebook: linuxquestions Google+: linuxquestions
Open Source Consulting | Domain Registration