Gui для KDE и Gnome
Я хочу написать графический интерфейс для приложения, которое теперь является CLI, которое должно "хорошо выглядеть" как в KDE, так и в Gnome DE, используя оптимальные пользовательские настройки для внешнего вида.
Если я выберу Qt или GTK+, смогу ли я это сделать?
Хорошо ли они интегрируются с обоими DE? Или пользователю KDE нужны gnome libs и наоборот для их запуска?
Мой язык разработки будет C++
3 ответа
Вы можете компилировать и ссылаться на Qt статически (я видел это в Windows, не знаю, как это работает в Linux). Приложения Qt могут выглядеть нативно в среде рабочего стола GNOME благодаря использованию qgtkstyle.
wxWidgets использует GTK+, если вы хотите, чтобы он хорошо выглядел на KDE, вам нужна тема GTK, которая использует Qt для рендеринга, как qgtkstyle для GNOME. qgtkstyle включен в Qt, в то время как другой вариант от третьей стороны.
Я обнаружил, что приложения Gtk+ ближе выглядят в KDE, чем приложения Qt в Gnome, но не настолько, чтобы это имело значение. Обе опции выглядят и чувствуются как принадлежащие, при условии, что библиотеки доступны в системе (чаще, как вы думаете) или они статически связаны (не уверены, что это разрешено с Qt), как упомянуто выше.
Во-вторых, wxWidgets по-прежнему будет использовать Gtk+ в KDE, требуя загрузки тех же библиотек, как если бы вы написали приложение строго с использованием Gtk+ в дополнение к wxWidgets. Это действительно фантастический выбор, поскольку он прост в использовании и хорошо работает во многих средах. Это должно дать вам представление о том, как приложения будут выглядеть между средами рабочего стола:
http://www.wxwidgets.org/about/screensh.htm
Я думаю, что более важно то, что подойдет вашему стилю кодирования и приложению лучше. Qt и Gtk+ могут сильно отличаться во многих отношениях.
Криш прав!
Если ваша цель - создать кроссплатформенное приложение, используйте библиотеку, такую как wxWidgets.
Если вы решите использовать Qt, например, пользователи, работающие на Gnome, загрузят несколько библиотек, и все будет работать нормально. Это прозрачно, когда в дистрибутиве есть менеджер пакетов, но сложнее, если его нет.