Member Avatar for stevee1984

Hi all, and must say a great looking forum!

I wish to start developing c++ apps on Linux and would like to know what GUIs are supports out of the box on Linux, especailly the main distros anyway? QT, KDE, GTK, etc? I basically want to write gui apps that will run on linux and not need additional libraries installed, GTK on Fedora is one example I've come across before! Of course I always think along the lines of the most simple and unknowledgeable of users trying to use my software :icon_rolleyes:

Hi all, and must say a great looking forum!

I wish to start developing c++ apps on Linux and would like to know what GUIs are supports out of the box on Linux, especailly the main distros anyway? QT, KDE, GTK, etc? I basically want to write gui apps that will run on linux and not need additional libraries installed, GTK on Fedora is one example I've come across before! Of course I always think along the lines of the most simple and unknowledgeable of users trying to use my software :icon_rolleyes:

I've recently started looking into this myself...
With regard to out of the box GUI functionality:
AFAIK It depends on the desktop/window managers a linux distro uses:
e.g. Kubuntu, OpenSuse and PCLinux use KDE desktop manager.
Ubuntu and Fedora use Gnome desktop manager.

GTK+ 2.0 is currently the default out of the box GUI library for the Gnome desktop. QT is the default for KDE. Not sure which libraries Xfce, fluxbox and all the other linux desktop/WMs use.

As for other GUI libraries, wxWidgets is the main one of any notability. wxWidgets is cross platform and is supposed to use whatever native UI elements are available for the platform it's running on. But I have a sneaky suspicion that on linux, wxWidgets uses GTK+ widgets for UI by default, regardless of the desktop manager.

If you developed your app with QT, any Gnome users who don't have any other QT apps installed will need to download the relevant QT libraries.
Likewise if you developed it with GTK+, then KDE users may find that they need to get the GTK+ libraries. Although saying that, since most distros come packaged with GIMP which uses GTK+ I guess that might not be a problem!

So at the end of the day it doesn't really matter which library you use!

Although, thinking about it... I guess GTK is probably most likely to be on most, if not all *nix installations. So that's probably the best bet if you want to avoid users having to download extra dependencies.

Personally I'd say just use whatever library you're most comfortable using. (wxWidgets is what I've started using!)

Anyway whatever you decide to use, the package managers for most of the linux distros are pretty good nowadays. As long as you manage to package your app correctly, the package managers on your users *nix PC's will inform them of any additional libraries/dependencies that they need to download and install! So IMHO you needn't worry about using additional libraries too much!

Just use whatever you need to get your app working. If it uses additional dependencies..So be it!

Otherwise, you could always stick to command-line/console apps! Heh heh! ;) (I was tempted to!)
Cheers for now,
Jas.

Member Avatar for stevee1984

I suppose the alternative idea would be to have a few distros running in vmware and test. But thanks!

Be a part of the DaniWeb community

We're a friendly, industry-focused community of developers, IT pros, digital marketers, and technology enthusiasts meeting, networking, learning, and sharing knowledge.