如何让 Qt5 应用程序在 Ubuntu 17.04 中使用 GTK 主题?

Phi*_*wig 13 themes gtk qt

由于我更新到 Ubuntu 17.04,Qt5 应用程序(例如 Qt Creator)将不再使用 GTK 主题。我尝试使用qt5ct更改它,但它只有样式FusionWindows可用,即使包qt5-gtk-platformtheme安装。

如何解决这个问题?

编辑:我正在使用 Unity。

gsx*_*ruk 8

Qt5 应用程序的外观和感觉由平台主题和样式决定。平台主题负责图标、字体等,样式控制小部件的呈现方式。我想您会发现您的应用程序(例如 Qt Creator)使用 GTK3 平台主题作为标准。

从Qt5.7开始就出现了这个问题。在此版本中,GTK2 平台主题和样式被删除并替换为 GTK3 平台主题。我最近一直在与 Qt 开发人员进行讨论,似乎没有 GTK3 风格来补充平台主题,目前也没有计划在未来实现这一点。因此,在 Ubuntu 上,默认样式是使用 GTK3 平台主题的“Fusion”。

有几种方法可以添加原生样式,如下所示:

  1. 旧的 GTK2 平台主题和样式仍然可以在一个单独的包中找到,该包qtstyleplugins可以在此处下载。不幸的是,GTK2 风格与 GTK3 平台主题不兼容。如果要使用 GTK2 样式,则必须使用 GTK2 平台主题。这意味着您的对话框等在 Ubuntu 17.04 中看起来不是原生的。但是,您可能更喜欢它而不是“融合”。
  2. 您没有说明您使用的是什么桌面环境。有一个第三方平台主题和样式,称为QGnomePlatformavailable hereadwaita-qtavailable here。这在使用 Ubuntu Gnome 时提供了完全原生的外观和感觉。

对于 Qt Creator,我不是 100% 确定它是否使用全局主题/样式位置。您可能必须将它们安装在{Qt_installation_folder}\Tools\QtCreator\lib\Qt\Plugins\platformthemes\和 中{Qt_installation_folder}\Tools\QtCreator\lib\Qt\Plugins\styles\


Gyl*_*yll 7

除了qt5ct你还需要安装qt5-style-plugins包,那么你应该在qt5ct中获得'gtk2'主题

sudo apt-get install qt5-style-plugins
Run Code Online (Sandbox Code Playgroud)

而且,按照该qt5ct文档,不要忘了设置QT_QPA_PLATFORMTHEME=qt5ct/etc/X11/Xsession.d/56xubuntu-session和/或/etc/environment

  • **成功!** 在我安装了 `lxappearance` 并在 `lxappearance` 中选择所需的 GTK2 主题 *(任何位于 `/usr/share/themes` 内的主题)* 后,所选主题将被 `qt5ct` 自动采用。这是缺少的一步!好吧,即使没有“lxappearance”,“qt5ct”也会自动采用主题,但默认主题很丑!这也适用于像“convertall”这样的 pyqt5 应用程序! (2认同)