5

What GUI library should I use for making C++ GUI applications? What are some recommendations for a cross-platform compatible library? I have heard of GTK+, wxWidgets, and have used Qt, which I found very confusing. Anybody know a user friendly GUI library for C++? Features that I want included:

  • Cross Platform Compatibility
  • Open Source
  • Active with Documentation
  • Clean & Easy to Learn
6

Given your requirements I would say that the best choice would be wxWidgets

From your feature list:

  • Cross Platform Compatibility Yes
  • Open Source Yes with a permissive licence
  • Active with Documentation Very active and comprehensive documentation
  • Clean & Easy to Learn the one thing that just about everybody seems to have problems getting their heads around is sizers
  • Mature & Active - has been in existence since 1992 & active hundreds of developers and thousands of commits.
  • Also provides platform independent abstractions for many none GUI elements such as date/time, threads, sockets, etc.

But I would suggest also installing:

  1. Python - cross platform programming language
  2. wxPython - python bindings for wxPython
  3. The wxPython Docs & Demos package

The first is very useful all by itself, the second allows you to prototype your GUI rapidly and the 3rd provides Open Source, Editable, examples of the majority of the wxWidgets controls.

The nice thing about prototyping your GUI with wxPython is that as it is an interpreted environment you can get very rapid results and can try things out interactively.

  • "Also provides platform independent abstractions for many none GUI elements such as date/time, threads, sockets, etc." <- That's sometimes a good idea and sometimes not so much, I wouldn't be hasty in recommendation that part as well. YMMV. But other than that +1. – einpoklum - reinstate Monica Dec 22 '15 at 11:49
  • @einpoklum - the wxDateTime objects have the nice feature of actually working, across platforms, consistently and for calculations involving dates before the platform epoch en.wikipedia.org/wiki/…. – Steve Barnes Dec 22 '15 at 17:18
  • But if you use those, you'll have a tie-in of the GUI and non-GUI parts of your app, which you may not want; and - the quality of wxWidgets as a GUI toolkit is not a good enough criterion of whether or not to adopt additional associated libraries throughout your code. – einpoklum - reinstate Monica Dec 22 '15 at 17:36
1

Some time ago I did some working with Qt QML. Not having a good background with GUIs, I got really impressed and how easy and clear it was for me to get something (nice) working fast.

QML is close to web technologies (CSS) so, if you have some related knowledge, it will be easier.

Regarding your requirements:

  • Closs platform: supports many desktop and mobile envs
  • Open Source: It has GPL licensed (and others, check them out*)
  • It is actively developed (it is Qt)
  • The ease of use and learn depends on your background and what you need to do. It has some nice examples/templates to help you get going*

*Can't post more links (not enough reputation yet). Sorry

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.