4

Question

I am looking for a GUI library with the following properties:

  • C++
  • Multiplatform (Windows, Unix) and preferably multi-compiler (Visual, GCC, Clang)
  • Skinnable (i.e. good support for controlling the appearance of standard controls)
  • Open and free for commercial use, no copyleft (i.e. MIT, Apache, no GPL)

The intended use is a technical desktop application, like Blender, Eclipse, or some music / video editing software, rather than a game or an MP3 player. It requires typical controls (a menu bar, buttons, edit boxes, checkboxes, preferably dockable windows, ...), I just would like to be able to customize their appearance. Other than that, wxWidgets would be perfect. The application is meant to be published under an Apache-like license, hence the problem with copyleft or commercial libraries.

Some Background

I realize that such questions have been around for some time, but thus far I have not found a very promising candidate. Some libraries I've looked at more closely are:

  • wxWidgets with wxUniversal: Sounds good, but I have read several reports that claim missing features and a lack of testing on common platforms; also it seems to be not very recently maintained. But I need a stable, reliable platform.
  • Qt: Seems capable but the license is not compatible with the project.
  • gtkmm: Is a possible candidate but the documentation is not ideal and to my understanding themes are meant to be installed separately on the operating system, not to be shipped with the application. I'm also unsure about the Windows support.
  • IMGUI: The look appears very alien.
  • JUCE: Seems very good, but again the license is not compatible.

I found an interesting overview here:

http://blog.johnnovak.net/2016/05/29/cross-platform-gui-trainwreck-2016-edition/

This goes through a list of programs with customized GUIs, many of which are good examples of what I would like to achieve. Apart from that, the article effectively seems to suggest that no appropriate library exists, but I would most appreciate any indication to the contrary, or some practical experiences with wxUniversal (and wxAUI). Thank you very much.

1

Not exactly what you are looking for, but you could consider Chromium Embedded Framework.

From Wikipedia: The Chromium Embedded Framework (CEF) is an open source framework for embedding a web browser engine based on the Chromium core. It allows developers to add web browser control and implement an HTML5-based layout GUI in a desktop application (...)

License: BDS

Visual Studio Code for example was built on top of it.

The idea would be to have the UI of your app developed in HTML and the code-behind in C++.

  • Yes, I'm not sure whether this actually fits the bill, but it certainly looks very interesting and I haven't heard of it in this context. Thank you very much! – user7418923 Sep 26 '18 at 9:07

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.