Originally posted by rendermaniac
Generally what do you think are the best GUI libraries (C/C++ or otherwise)?
Qt, FOX, wxWindows (now named wxWidgets), Fltk.
At first glance GTK doesn’t look much more than TK which seems a good reason to avoid it.
[/B]
Yep. GTK’s main attraction in that in several linux distributions it comes installed. GTK is also C not C++. There is a C++ binding called GTK–, thou.
Lots of people say QT is good. I guess the licensing gets a bit weird if you want to develop on Windows as well as Linux (and Mac?).
[/B]
It is not weird, it is just expensive. If you are planning to sell the software, it may be worth it. If not, it most likely isn’t.
How does FLTK compare? I know it was designed by a vfx guy and is C++ based, but not a lot of people seem to use it.
[/B]
It is better as a windows toolkit (together with FOX, they are the fastest toolkits around, and fltk is probably the smallest of all toolkits).
FLTK has the big advantage over others of coming with FLUID, which is a free WYSIWYG UI builder (works for C++, but a python translator is also available).
FLTK does not have any sockets or other stuff like wxWindows. Depending on needs, this is a plus or a minus. FLTK C++ code is a tad messier, but easier to read if you don’t like the Microsoft-like notation of wxWindows.
Many people consider Qt and wxWindows application frameworks rather than just graphic toolkits due to their several classes that have little to do with UIs, while FOX, Fltk, Tk, etc. are considered UI toolkits.
FLTK, FOX, Tk and the rest try to keep widgets identical across platforms, unlike wxWindows that uses native widgets. This has benefits and disadvantages.
The main benefit of avoiding native widgets is that you really don’t need to test your widgets on other platforms, as you know it will all work and look the same. You also get some benefits as better file requesters, for example, than window’s basic file requester and so forth. And you are not hampered by some widget functionality not present in the other OS. Finally, subclassing and extending widgets is much, much, much easier than doing so with native widgets.
The disadvantage is that the widgets may look somewhat out of place with the look and feel of the OS. Tk has its own Tk look, FLTK has an XForms look and FOX has a windows look.
Both FLTK and FOX plan to introduce themes in future versions, so widgets can adopt different looks based on code or OS, but that is likely far away. Qt uses a similar approach and it already emulates the native look and feel of the OS, without relying on OS widgets.
Would you recommend WxWindows for C++ too?
[/B]
Depends. If you can stand its microsoft-like classes, then perhaps.
I would probably first recommend Qt if you can afford it.
I would then recommend wxWindows above others only if you actually plan to use the additional functionality like sockets and the rest.
If not, I’d stay away from it and use FOX or FLTK. I would probably recommend FLTK over FOX due to fluid, but FOX’s online documentation is more thorough and the binding to scripting languages (python, ruby, etc) are better and better supported.
For a more detailed comparison (albeit a tad out of date):
http://www.fifthplanet.net/cgi-bin/wiki.pl?Comparisons