从 python 检测 macOS 中的暗模式

2024-05-17

我正在编写一个 PyQt 应用程序,我必须添加一个补丁,以便在启用暗模式的 Macos 上可以读取字体:

app = QApplication([])
# Fix for the font colours on macos when running dark mode
if sys.platform == 'darwin':
    p = app.palette()
    p.setColor(QPalette.Base, QColor(101, 101, 101))
    p.setColor(QPalette.ButtonText, QColor(231, 231, 231))
    app.setPalette(p)
main_window = MainWindow()
main_window.show()
app.exec_()

这个补丁的问题是它使得在 macOS 的浅色模式下无法读取内容。

有没有办法可以从 python 或通过子进程使用标准 shell 命令检测 macOS 上的暗模式?

编辑: 从 PyQt 5.12 开始,不再需要修复暗模式。


如果您不想导入 pyobjc,可以使用暗检测 https://github.com/albertosottile/darkdetect,一个专用包,仅使用标准 Python 发行版提供的依赖项。

Usage:

import darkdetect

>>> darkdetect.theme()
'Dark'

>>> darkdetect.isDark()
True

>>> darkdetect.isLight()
False

DarkDetect 也可在 PyPI 上使用:pip install darkdetect.

免责声明:我是《DarkDetect》的作者。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

从 python 检测 macOS 中的暗模式 的相关文章