使 PyQt 应用程序始终如一地对系统暗模式做出反应

Make PyQt application consistently react to system dark mode

提问人:astrobagel 提问时间:10/26/2023 更新时间:10/26/2023 访问量:13

问:

我正在 Ubuntu 上用 PyQt 编写一个应用程序。我希望我的 gui 对系统主题做出反应:深色或浅色模式。如果可能,此功能应该适用于 Windows 和 Linux 环境。如何做到这一点?PyQt 会自动检测系统主题吗?在某些 (linux) 计算机上,GUI 会根据 os 主题自行切换到深色模式,但在其他计算机上不会始终如一。我想在我的代码中控制这个过程,以便它在任何 Windows 或 Linux 机器上都是可重复和一致的。注意:我不是要为应用程序中的每个小部件设置深色和浅色样式表。事实证明,并非所有小部件都可以针对所有交互模式正确设置样式(例如,禁用的组合框向上/向下箭头不能以这种方式设置样式)。当某些操作系统设置其系统主题时,gui 似乎能够自动更改为深色模式。如何利用它来控制应用程序的主题?如何使其在 linux 和 windows 操作系统上都具有可重复性和一致性?

PYQT 暗模式

评论

0赞 ekhumoro 10/27/2023
Thrre 没有“the”系统主题这样的东西。由用户为每个 gui-toolkit 安装适当的主题插件(如果可用),然后配置他们的系统以使用它们。对于 Ubuntu,默认的 ui 是 Gnome/GTK,但对于许多其他 Linux 发行版,它可能是通过 KDE - 或者可能根本没有特定的默认值。没有通用的 Linux 标准(尽管有像 freedesktop 这样的努力),所以作为一个程序员,你永远不能依赖用户将系统配置为允许一致的 ui 主题。更不用说实际使用一个了。

答: 暂无答案