![如何防止 KDE 弄乱我的 Qt 对话框按钮顺序?](https://linux22.com/image/1112361/%E5%A6%82%E4%BD%95%E9%98%B2%E6%AD%A2%20KDE%20%E5%BC%84%E4%B9%B1%E6%88%91%E7%9A%84%20Qt%20%E5%AF%B9%E8%AF%9D%E6%A1%86%E6%8C%89%E9%92%AE%E9%A1%BA%E5%BA%8F%EF%BC%9F.png)
我在 Lubuntu 上主要使用 GTK+ 应用程序(例如 Geeqie、Audacious 等)。不过,我决定尝试一下 KDE 4,安装kubuntu-desktop
并删除那些我不想要的应用程序。
大错特错。现在,即使我在运行 LXDE 的同时运行运行 QGtkStyle 的 Qt 应用程序,像 K3b 这样的应用程序也会在对话框中使用 Windows/KDE 按钮顺序,而不是标准 GTK+ 对话框使用的 GNOME/OSX 样式的按钮顺序。
如何强制 Qt 应用程序重新使用 GNOME 风格的对话框按钮顺序?
(理想情况下,即使我登录 KDE,它也能保持有效,因为无论我运行哪个桌面,我的 90% 的应用程序都是 GTK +)
答案1
事实证明:
- Qt 按钮排序由小部件主题决定。
- “GTK+ 风格”小部件主题遵循 GTK+ 配置文件中定义的内容。
- GTK+ 按钮顺序由配置键控制
gtk-alternative-button-order
。 - 一些 KDE 设置会安装一个 gtkrc 文件,用于设置
gtk-alternative-button-order = 1
。
因此,为了获得 GNOME/OSX 风格的“右侧 OK”排序,解决方案是:
- 确保 KDE 设置为使用“GTK+ 风格”或有意模仿 GTK+ 默认配置选项的风格。
- 如果
GTK2_RC_FILES
设置了环境变量,请确保~/.gtkrc-2.0
(或您可以编辑的其他内容)位于最后。(后面的文件将覆盖前面的文件)- 在 KDE 中,您可以通过放入带有
.sh
扩展的shell 脚本~/.kde/env/
并使其可执行来设置环境变量。 export
在 LXDE 中,你可以使用以下命令设置环境变量~/.xsessionrc
- 在 KDE 中,您可以通过放入带有
- 添加
gtk-alternative-button-order = 0
到您的~/.gtkrc-2.0
并非所有应用程序都遵循按钮排序指令,但不遵循的通常是 GTK+ 应用程序,它们硬编码“右侧的 OK”......所以您可能不会注意到。