繁体   English   中英

在Pure Qt应用程序中使用KDE系统主题

[英]Using KDE System Theme in Pure Qt Application

我正在开发Qt4应用程序并在gnome下运行它,但我真的希望它使用KDE系统主题(氧气)和配色方案(黑曜石海岸)。 不幸的是,该应用程序似乎未响应systemsettings更改。

我至少可以通过设置QStyle来使应用程序以编程方式使用我想要的主题:

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

但我不知道采用任何类似的方法来设置配色方案,无论如何这都是丑陋的。

有趣的是,我已经在同一台机器上开发了一些PyQt4应用程序,它们很好地接受了systemsettings更改。 我不太确定为什么C ++ Qt4应用程序的行为会有所不同。

另一个注意事项:我注意到通过gnome对话框更改窗口外观会影响C ++ qt窗口的外观-那么Gnome可能以某种方式覆盖了我的KDE配置?

我发现的唯一解决方案是让环境为您完成工作,如此处所述: 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更改此设置(以编程方式设置样式的功能)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM