Обнаружить темный режим в макос из питона - PullRequest
0 голосов
/ 15 февраля 2019

Я пишу приложение PyQt, и мне нужно добавить патч, чтобы шрифт читался на макос с включенным темным режимом:

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 со светлым режимом.

Есть ли способ определить темный режим на macos из python или с помощью стандартной команды оболочки через подпроцесс?

EDIT: Начиная с PyQt 5.12 исправление темного режимабольше не требуется.

Ответы [ 2 ]

0 голосов
/ 14 мая 2019

Если вы не хотите импортировать pyobjc, вы можете использовать Darkdetect , выделенный пакет, который использует только зависимости, предоставляемые стандартными дистрибутивами Python.

Использование:

import darkdetect

>>> darkdetect.theme()
'Dark'

>>> darkdetect.isDark()
True

>>> darkdetect.isLight()
False

Darkdetect также доступен в PyPI: pip install darkdetect.

Отказ от ответственности : я являюсь автором Darkdetect.

0 голосов
/ 15 февраля 2019

Опираясь на этот вопрос , вы можете установить pyobjc и использовать NSUserDefaults:

>>> from Foundation import NSUserDefaults
>>> NSUserDefaults.standardUserDefaults().stringForKey_('AppleInterfaceStyle')
'Dark'
...