Многоплатформенная бесплатная библиотека с графическим интерфейсом для C++ с возможностью изменения скинов.

Вопрос

Я ищу библиотеку GUI со следующими свойствами:

  • С++
  • Мультиплатформенность (Windows, Unix) и желательно мультикомпилятор (Visual, GCC, Clang)
  • Skinnable (т.е. хорошая поддержка управления внешним видом стандартных элементов управления)
  • Открытый и бесплатный для коммерческого использования, без авторского лева (например, MIT, Apache, без GPL)

Предполагаемое использование - это техническое настольное приложение, такое как Blender, Eclipse или какое-либо программное обеспечение для редактирования музыки / видео, а не игра или MP3-плеер. Для этого требуются типичные элементы управления (строка меню, кнопки, поля редактирования, флажки, желательно закрепляемые окна, ...), я просто хотел бы иметь возможность настраивать их внешний вид. Кроме этого, wxWidgets был бы идеальным. Приложение предназначено для публикации под лицензией, подобной Apache, отсюда и проблема с авторским левом или коммерческими библиотеками.

Некоторая предыстория

Я понимаю, что такие вопросы были в течение некоторого времени, но пока я не нашел очень многообещающего кандидата. Вот некоторые библиотеки, которые я рассмотрел более внимательно:

  • wxWidgets с wxUniversal : Звучит хорошо, но я прочитал несколько отчетов, в которых утверждается об отсутствии функций и отсутствии тестирования на распространенных платформах; также, кажется, не очень недавно поддерживается. Но мне нужна стабильная, надежная платформа.
  • Qt : Кажется способным, но лицензия не совместима с проектом.
  • gtkmm : возможный кандидат, но документация не идеальна, и, насколько я понимаю, темы предназначены для установки отдельно в операционной системе, а не для поставки вместе с приложением. Я также не уверен в поддержке Windows.
  • IMGUI : Выглядит очень необычно.
  • JUCE : Очень хорошо, но опять же лицензия не совместима.

Я нашел интересный обзор здесь:

http://blog.johnnovak.net/2016/05/29/кросс-платформенный-gui-trainwreck-2016-edition/

Это проходит через список программ с настраиваемыми графическими интерфейсами, многие из которых являются хорошими примерами того, чего я хотел бы достичь. Кроме того, в статье фактически предполагается, что подходящей библиотеки не существует, но я был бы очень признателен за любое указание на обратное или за некоторый практический опыт работы с wxUniversal (и wxAUI). Большое спасибо.

Ответы (1)

Не совсем то, что вы ищете, но вы можете рассмотреть Chromium Embedded Framework .

Из Википедии : Chromium Embedded Framework (CEF) — это фреймворк с открытым исходным кодом для встраивания движка веб-браузера на основе ядра Chromium. Это позволяет разработчикам добавлять элементы управления веб-браузером и реализовывать графический интерфейс макета на основе HTML5 в настольном приложении (...)

Лицензия: БДС

Код Visual Studio , например , был построен поверх него .

Идея состоит в том, чтобы пользовательский интерфейс вашего приложения был разработан на HTML, а программный код — на C++.

Да, я не уверен, что это на самом деле соответствует всем требованиям, но это, безусловно, выглядит очень интересно, и я не слышал об этом в таком контексте. Большое спасибо!