Cross platform GUI toolkit

Started by
14 comments, last by brx 12 years, 3 months ago
Another Qt fan here - yes it is heavyweight but a) you can just link to the libraries you need and b) if you want cross-platform, you'll end up having to find cross-platform alternatives for a lot of stuff other than GUI which Qt provides a plethora of.

Plus I don't think I could ever go back to GUI design in C++ without Qt's signals/slots and metaobject system.
Advertisement
No recommendations for GTK?

I personally have no experience, only recently looked at it as an option for cross platform C# development ( as it's the preferred gui kit for Mono ); but I figured it would have a proponent or two here.

I only recently started working with Qt, but frankly its bigness is to a degree a strength, as it makes up for the otherwise abysmally lacking C++ standard libraries. When I'm used to working with the .NET Framework libraries, having something like Qt is extremely refreshing.
I have been finally able to compile a sample application using wxWidgets, That does not mean that I'm over with search, I could give a second look to Qt (thought its size is HUGE) and FLTK.

@Serapth: I've also considered GTK, but as far as I know it is C, not C++, and after several years of C# and Java I don't feel like going back to non OO interfaces.
I have only used Qt in the past for a single application, so I can not tell to much about it. Although it is pretty big, it comes with all kinds of handy stuff you no longer have to write yourself. It has a nice wiziwig UI designer which supports the events (you can even write the whole application in one of their apps). Advantage is that multi-language has been integrated pretty well, quite easy to learn and lots of libraries cross platform available. Disadvantage I found with Qt was that I had to compile the UI and some other file type everytime it changed.

Crafter 2D: the open source 2D game framework

?Github: https://github.com/crafter2d/crafter2d
Twitter: [twitter]crafter_2d[/twitter]

I used Qt for several years. On your harddrive it's huge (they use some custom meta-object compiler for some of their code and it's large), but you can select what libraries to link with. It's really slick and works really well.

I had to move away from it though as I had to release a commercial application with it and the license prohibits that unless you purchase it.
Now I'm using wxWidgets. The difference is clear. After a few weeks of usage I run into broken widgets (wxListCtrl not callbacking on selection changes in Win32 but does on Linux, to pick an example..) and I have to work around the broken stuff but overall it works. It's dockable windows features are not as solid, easy to use or nice-looking as Qt's but it's still free. Which is important too. I do not regret my choice.
+1 for Qt. I've been using Qt for several years and really love it. Not only is the library itself beautifully structured (imho), the documentation is great, too.


I had to move away from it though as I had to release a commercial application with it and the license prohibits that unless you purchase it.

Actually, Qt can be used under the terms of the LGPL, so you are allowed to release commercial applications with it without buying. The only advantage you get from buying it is the additional support you get and the right to distribute your application with Qt linked statically.

+1 for Qt. I've been using Qt for several years and really love it. Not only is the library itself beautifully structured (imho), the documentation is great, too.

[quote name='SymLinked' timestamp='1325622561' post='4899373']
I had to move away from it though as I had to release a commercial application with it and the license prohibits that unless you purchase it.

Actually, Qt can be used under the terms of the LGPL, so you are allowed to release commercial applications with it without buying. The only advantage you get from buying it is the additional support you get and the right to distribute your application with Qt linked statically.
[/quote]

This is true of course, and another reason was that I couldn't use dynamic linking. At the time of posting I didn't seem to be able to edit my post, but now it works so I'll make sure I edit that in that to avoid any confusion. Thanks!

Agreed about their documentation.

This topic is closed to new replies.

Advertisement