我在我的 Kubuntu 12.10 linux 机器上安装了 Qt5 和 Qt4,并注意到以下内容:
- 使用 Qt4 编译的程序具有本地 KDE 外观和感觉。我使用默认的 KDE 的 Oxygen 主题,我的程序也是如此(注意带有标题的平滑渐变和焦点小部件的蓝色选择);
- 但是当使用 Qt5 重新编译时没有对代码进行任何更改,它使用了不同的样式(似乎它被称为 Fusion)而且看起来很笨拙和不合时宜(见右图)
我想要的是非常直截了当的:我希望我的应用程序适合周围的系统,即看起来总是原生的。在使用Qt4的时候,我习惯默认有这个。 Qt5 在 Windows 中似乎也具有正常的原生外观。但是我必须做些什么才能在 Kubuntu 中也有同样的东西?而且,理想情况下,无处不在?我的意思是,我不想强制我的应用程序的 Linux 构建严格使用 Oxygen。我希望它使用当前在 KDE 中设置的主题:就像在旧的 Qt4 中一样。
似乎应用程序代码与此问题无关:我没有使用其中的任何 QStyle,它非常典型的 Qt 的 hello-world。但以防万一 it's on GitHub 。
UPD: @peppe has given 关于为什么会出现此问题 的回答非常充分(KDE 中的 Oxygen 主题是针对 Qt4 编译的,Qt5 无法使用)。 但我仍在寻找关于如何解决这个问题的答案?我试图找到 Oxygen 主题源来玩弄,但除了 Firefox theme 之外没有找到任何东西。
UPD2: @kwirz suggested 一个有趣的想法:强制应用程序使用 GTK+ 主题,并在 KDE 设置中启用 oxygen-gtk,使 GTK 窗口看起来类似于 Oxygen .一方面,它确实看起来更接近氧气:
但另一方面,我们已经看到了细微的差别:只读行编辑变为灰色,聚焦按钮仍未高亮显示等。不幸的是,当尝试将此技术应用于更复杂的小部件时,会出现更多伪像(尤其是在组合框和微调器上):
所以看起来这种技术不是一个完整的解决方案,但在简单的情况下仍然非常有用。
最佳答案
Oxygen 是 KDE 的一部分,因此您可以在那里找到它。这不是一个独立的主题。您不能针对 Qt 5 构建 KDE,它不受支持。 KDE 的下一个主要版本 (KDE 5) 将使用 Qt 5。
所以现在,您绝对无能为力。如果您希望您的应用程序在 KDE 4 中看起来和运行良好,请使用 Qt 4。
关于linux - native KDE 寻找 Qt 5 应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14880032/