我正在开发一个Qt4应用程序并在gnome下运行它,但我真的希望它使用KDE系统主题(氧气)和配色方案(Obsidian Coast)。不幸的是,该应用程序似乎没有响应systemsettings
中的更改。
我至少能够让应用程序通过设置QStyle以编程方式使用我想要的主题:
QApplication app( argc, argv );
app.setStyle(QStyleFactory::create("oxygen"));
但我不知道有任何类似的方法来设置配色方案,无论如何这都很难看。
有趣的是,我已经在同一台机器上开发了一些PyQt4应用程序,并且它们在systemsettings
中获得了很好的变化。我不确定为什么C ++ Qt4应用程序的行为会有所不同。
还有一点需要注意:我注意到通过gnome对话框更改窗口外观会影响我的C ++ qt窗口的外观 - 所以Gnome可能会以某种方式覆盖我的KDE配置?
答案 0 :(得分:0)
我发现的唯一解决方案是让环境为您完成工作,如下所示:https://forum.kde.org/viewtopic.php?f=17&t=90720
来自帖子的剪辑:
所以你希望用其他KDE的不同颜色方案启动Amarok? 您可以通过为其设置不同的设置来完成此操作。
打开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改变这个......(以编程方式设置样式的能力)