如何防止 KDE 弄乱我的 Qt 对话框按钮顺序?

如何防止 KDE 弄乱我的 Qt 对话框按钮顺序?

我在 Lubuntu 上主要使用 GTK+ 应用程序(例如 Geeqie、Audacious 等)。不过,我决定尝试一下 KDE 4,安装kubuntu-desktop并删除那些我不想要的应用程序。

大错特错。现在,即使我在运行 LXDE 的同时运行运行 QGtkStyle 的 Qt 应用程序,像 K3b 这样的应用程序也会在对话框中使用 Windows/KDE 按钮顺序,而不是标准 GTK+ 对话框使用的 GNOME/OSX 样式的按钮顺序。

如何强制 Qt 应用程序重新使用 GNOME 风格的对话框按钮顺序?

(理想情况下,即使我登录 KDE,它也能保持有效,因为无论我运行哪个桌面,我的 90% 的应用程序都是 GTK +)

答案1

事实证明:

  1. Qt 按钮排序由小部件主题决定。
  2. “GTK+ 风格”小部件主题遵循 GTK+ 配置文件中定义的内容。
  3. GTK+ 按钮顺序由配置键控制gtk-alternative-button-order
  4. 一些 KDE 设置会安装一个 gtkrc 文件,用于设置gtk-alternative-button-order = 1

因此,为了获得 GNOME/OSX 风格的“右侧 OK”排序,解决方案是:

  1. 确保 KDE 设置为使用“GTK+ 风格”或有意模仿 GTK+ 默认配置选项的风格。
  2. 如果GTK2_RC_FILES设置了环境变量,请确保~/.gtkrc-2.0(或您可以编辑的其他内容)位于最后。(后面的文件将覆盖前面的文件)
    • 在 KDE 中,您可以通过放入带有.sh扩展的shell 脚本~/.kde/env/并使其可执行来设置环境变量。
    • export在 LXDE 中,你可以使用以下命令设置环境变量~/.xsessionrc
  3. 添加gtk-alternative-button-order = 0到您的~/.gtkrc-2.0

并非所有应用程序都遵循按钮排序指令,但不遵循的通常是 GTK+ 应用程序,它们硬编码“右侧的 OK”......所以您可能不会注意到。

相关内容