我在我的Kubuntu 12.10 linux机器上安装了Qt5和Qt4,并注意到以下内容:
我想要的是非常明确的:我希望我的应用程序适合周围的系统,即始终看起来原生.使用Qt4时,我习惯于默认使用它.Qt5似乎在Windows中也具有正常的原生外观.但是我在Kubuntu中也必须做同样的事情呢?理想情况下,无处不在?我的意思是,我不想强制我的应用程序的linux构建严格使用氧气.我希望它使用当前在KDE中设置的主题:就像它在古老的Qt4中一样.
看起来应用程序代码与此问题无关:我没有使用其中的任何QStyle,它几乎是典型的Qt的hello-world.但以防它是在GitHub上.
UPD: @peppe 给出了为什么会出现这个问题的充分答案(KDE中的Oxygen主题针对Qt4编译而Qt5无法使用).但我仍在寻找如何解决这个问题的答案?我试图找到Oxygen主题源来玩,但除了Firefox主题之外没有找到任何东西.
UPD2: @kwirz 提出了一个有趣的想法:强制应用程序使用GTK +主题,并在KDE设置中启用oxygen-gtk,使GTK窗口看起来类似于Oxygen.一方面,它确实看起来更接近氧气:
但另一方面,我们已经看到了一点点差异:只读线条编辑变为灰色,焦点按钮仍然没有突出显示等等.不幸的是,当尝试将此技术应用于更复杂的小部件时,会出现更多的工件(特别是在组合框上)和旋转器):
因此,似乎这种技术不是一个完整的解决方案,但仍然非常有用的是简单的情况.
Nik*_* C. 14
氧气是KDE的一部分,所以你可以找到它.这不是一个独立的主题.你无法针对Qt 5构建KDE,它不受支持.KDE的下一个主要版本(KDE 5)将使用Qt 5.
所以现在,你无能为力.如果您希望您的应用程序在KDE 4中看起来和行为都很好,请使用Qt 4.
这不是你的应用程序 - 只是Oxygen是针对Qt 4而不是Qt 5进行编译的,所以Qt 5不能使用它并且回退到默认样式("fusion").请记住,样式实际上是插件 - 即代码,受API/ABI要求的限制,以便加载和使用.你需要针对Qt 5编译的Oxygen风格.