Как отключить темный режим macOS для скриптов pyside2 / pyqt?

#python #macos #pyqt #pyside2

#python #macos #pyqt #pyside2

Вопрос:

У меня есть несколько скриптов с небольшими графическими интерфейсами, написанных с помощью PySide2. Многие из них имеют части с отдельными таблицами стилей виджетов и не читаются в темном режиме macOS.

Поэтому вместо обновления графических интерфейсов я бы хотел полностью отключить темный режим для определенных скриптов.

Я знаю о Info.plist настройке, но это неприменимо для отдельных скриптов python, только для замороженных и связанных приложений. Также я не нашел способа использовать светлую палитру по умолчанию. Какие-либо подсказки?

Ответ №1:

Ну, вы могли бы определить свою собственную таблицу стилей в таблице стилей QMainWindow:

 stylesheet = """
    * {
        color: #000000;
        background-color: #FFFFFF; 
    }
    QLabel {
        color: #000000;
        background-color: #FFFFFF; 
    }
    QPushButton {
        color: #000000;
        background-color: #FFFFFF; 
    }

  etc.

"""
window.setStyleSheet(stylesheet)
  

и если вы хотите, чтобы это происходило только на macOS:

 from sys import platform as _platform
if(_platform=='darwin'):
    window.setStyleSheet(stylesheet)
  

Комментарии:

1. Тогда что, если ОС не находится в темном режиме при запуске и / или режим меняется во время работы программы?

2. @musicamante Таблица стилей приложения всегда будет одинаковой (в данном случае черный текст поверх белого). Это не влияет на изменение темы, потому что таблица стилей перезаписывает ее.