如何在PyQt5(5.13)中启用macOS暗模式

时间:2019-08-26 14:38:15

标签: python qt5 pyqt5

我正在用PyQt5制作我的第一个GUI应用程序,但是它目前在暗模式下不起作用。

如何在PyQt5中启用暗模式?

我使用了PyQt5 v5.13.0,并在Mac,Linux和Windows上使用PyInstaller冻结了该应用程序。

如果您需要更多信息或一些代码,请告诉我。

3 个答案:

答案 0 :(得分:2)

macOS X 的解决方法。

  1. 安装 PyQt5 5.12.2

    pip3 install pyqt5==5.12.2
    
  2. 编译您的应用

  3. 将其添加到 info.plist 中:

    <key>NSRequiresAquaSystemAppearance</key>
    <string>False</string>
    

5.12.25.13.0 之间没有太大区别,但后来在 macOS 上不支持原生暗模式。

在其他平台上编写单独的样式表并在设置中添加触发器或读取系统变量。

答案 1 :(得分:0)

除了样式表的外部实现或由您自己实现之外,没有其他方法(内置)。

我强烈建议检查this reply中的其中一个。

它谈论this stylesheet

在此线程中,还有实现它的方法。

答案 2 :(得分:0)

在导入 PyQt5/PySide2 之前,您可以在代码的最开始添加这两行:

import os
os.environ["QT_MAC_WANTS_LAYER"] = "1"

无需安装特定的 qt 版本,也无需在 NSRequiresAquaSystemAppearance 上将 false 设置为 Info.plist

在 macOS Mojave、Catalina 和 Big Sur 上测试。