Использование системной темы KDE в приложении Pure Qt

Я занимаюсь разработкой приложения Qt4 и запускаю его под gnome, но мне бы очень хотелось использовать системную тему KDE (Oxygen) и цветовую схему (Obsidian Coast). К сожалению, приложение не реагирует на изменения в systemsettings,

По крайней мере, я могу заставить приложение использовать программную тему, которую я хочу, установив QStyle:

QApplication app( argc, argv );
app.setStyle(QStyleFactory::create("oxygen"));

но я не знаю подобного подхода к настройке цветовой схемы, и в любом случае это уродливо.

Интересно, что я уже разработал несколько приложений PyQt4 на этой же машине, и они получают изменения в systemsettings просто хорошо. Я не совсем уверен, почему приложение C ++ Qt4 будет вести себя по-другому.

Еще одно замечание: я заметил, что изменение внешнего вида окна с помощью диалога gnome повлияет на внешний вид моего окна C ++ qt — так что, возможно, Gnome каким-то образом переопределяет мою конфигурацию KDE?

1

Решение

Единственное решение, которое я нашел, — позволить окружающей среде сделать работу за вас, как отмечалось здесь: https://forum.kde.org/viewtopic.php?f=17&т = 90720

Отрывок из постов:

Итак, вы хотите запустить Amarok с другой цветовой схемой, чем у остальных KDE?
Вы можете сделать это с помощью другого набора настроек.

Откройте Konsole и введите «export KDEHOME = $ HOME / .kde4-amarok /». Затем запустите «systemsettings» и настройте способ отображения Amarok (цветовая схема и т. Д.).
Наконец, запустите «amarok», чтобы запустить сам Amarok.

Это будет работать и для приложений QT, но вы не можете установить стиль из приложения, как пытаетесь (app.setStyle(QStyleFactory::create("oxygen");Вы должны будете использовать немного более грязный метод:

sys.argv.append("--style=Oxygen")

Это прочитает аргумент из среды и не создаст совершенно новый экземпляр темы Oxygen (при условии, что вы установили KDEHOME где-то в вашем проекте, и вы уже настроили это), а затем будете использовать это KDEHOME читать цвета и использовать Oxygen тема.

Может быть, они изменят это для QT5 … (Возможность устанавливать стиль программно)

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]