GUI toolkits

Hi all,
I need to make a GUI for a little project I have and few questions come to my mind:
I'm thinking about using GTK and GTK is licensed under LGPL. Does that mean that if I make an app that uses GTK it has to be open source? If yes, what other GUI toolkits could I use?
Also, GTK comes with a bunch of dlls, some of which I probably don't need. Is there a way to statically link everything? Having a lot of dlls looks messy, especially, when the app is quite simple...
Mmm... I would have thought that this question would be better in General C++, but whatever.

Answer:
http://www.gnu.org/licenses/lgpl-3.0.txt

It's always good to know what you're clicking "Agree" to.

You can also use QT4. That's another pretty good one.
http://qt.nokia.com/products

-Albatross
I'm thinking about using GTK and GTK is licensed under LGPL. Does that mean that if I make an app that uses GTK it has to be open source?

No; the point of LGPL is that libraries that are LGPL'd can be linked with proprietary code (as long as the LGPL code stays LGPL).

GTK+ is quite good; wxWidgets (which I think is GTK+ based) is also popular and so is Qt.

What are you making?
wxWidgets is GTK based on Linux. On Windows it's WinAPI based.

I second wxWidgtes or Qt.
closed account (1yR4jE8b)
I say QT to the millionth power, IMO it's soooooo much further ahead in functionality and easy to use then every other toolkit out there.

QT Creator is also a really badass form designer.
GTK has the Glade Interface Designer which is very easy to use.

I also have QT Designer (not "Creator") which seems to be very similar.
Last edited on
closed account (1yR4jE8b)
I've always found Glade interface to be a bit unwieldly or glitchy...it never seems to do what you want it to do (well, at least for me). QT is a much more polished and friendly toolkit IMO.
I find GTK+ quite complicated and convoluted to use. I just felt like mentioning the Glade designer which is easy to use.
ok, thanks. I guess I'll use qt then..
And another question - do I have to add the source of the library I'm using or is that only necessary if I modify something in it?
Adding the source is not necessary, but best link the external library statically in your .exe. This way your code will be copy+paste=install portable, although your .exe will gain a couple of extra MB in it.
Last edited on
Remember that Qt is proprietary -- hence its polish. Unless you pay big bucks you cannot use it for commercial purposes.

GTK's LGPL stuff is invalidated with static linking. You have to dynamically link with their DLLs.
Didn't know about it... anyways, if you use the software in-house, nothing to worry about. Otherwise, Readme-long-instructions-obscure-manipulations-download-from-a-third-party-installation, here we come!

[Edit:]
Qt is proprietary -- hence its polish


Haha... reminds me of a mathematical iron-curtain joke:

Why the contour* integral of Western Europe is zero? Because there are no poles there!
Addendum: yes, there might be some, but they are all removable.

* http://en.wikipedia.org/wiki/Methods_of_contour_integration
Last edited on
closed account (z05DSL3A)
Qt has three licences.

Qt Commercial Developer License
The Qt Commercial Developer License is the appropriate version to use for the development of proprietary and/or commercial software. This version is for developers who do not want to share the source code with others or otherwise comply with the terms of the GNU Lesser General Public License version 2.1 or GNU GPL version 3.0.

Qt GNU LGPL v. 2.1
This version of Qt is appropriate for the development of Qt applications (proprietary or open source) provided you can comply with the terms and conditions contained in the GNU LGPL version 2.1.

Qt GNU GPL v. 3.0
This version of Qt is appropriate for the development of Qt applications where you wish to use such applications in combination with software subject to the terms of the GNU General Public License version 3.0 or where you are otherwise willing to comply with the terms of the GNU General Public License version 3.0.
Topic archived. No new replies allowed.