如何修复 PyQt5 应用程序的主题?

Him*_*har 5 gtk ubuntu themes pyqt pyqt5

我尝试在同一系统上使用 pip 中的 PyQt5 以及 apt (python3-pyqt5) 。这两个版本都会产生不同的主题(如下图)。

我尝试将环境变量设置QT_STYLE_OVERRIDE为“gtk”以及“gtk+”,但无法获得本机外观。

我很好奇为什么会发生这种情况。我怎样才能强制它使用QGtkStyle?其他本机应用程序(如 Clementine、VLC、Zeal)可与 QGtkStyle 主题配合使用,并且还可根据 gnome-shell 主题进行混合。

按照一些在线说明,我尝试了 qt5-style-plugins,它没有 gtk 主题。

从 pip 安装(QFusionStyle):

从 pip 安装

从 apt 安装(QGtkStyle):

从 apt 安装

Oli*_*ver 2

评论有点长,所以可以尝试以下一些操作:

  • 设置 DESKTOP_SESSION (对您的情况没有帮助)
  • 打印 QApplication.style().metaObject().className(),看看两次运行是否相同。样式对象可能还有其他有用的属性。还
  • 打印QStyleFactory.keys(),QT_STYLE_OVERRIDE必须是打印值之一。
  • 查看Qt 和 GTK 应用程序的统一外观
  • --style 选项覆盖 QT_STYLE_OVERRIDE 设置
  • 可能有一种插件样式在其中一个安装中被激活