我正在編寫一個 PyQt 應用程序,我必須添加一個補丁,以便字體在啟用暗模式的 macos 上可讀:app = QApplication([])# Fix for the font colours on macos when running dark modeif 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 上使用 light 模式無法讀取內容。有沒有辦法可以從 python 或通過子進程使用標準 shell 命令檢測 macos 上的暗模式?編輯:從 PyQt 5.12 開始,不再需要暗模式修復。
2 回答

海綿寶寶撒
TA貢獻1809條經驗 獲得超8個贊
如果您不想導入 pyobjc,您可以使用Darkdetect,這是一個專用包,僅使用標準 Python 發行版提供的依賴項。
用法:
import darkdetect
>>> darkdetect.theme()
'Dark'
>>> darkdetect.isDark()
True
>>> darkdetect.isLight()
False
Darkdetect 也可在 PyPI 上使用:pip install darkdetect.

慕勒3428872
TA貢獻1848條經驗 獲得超6個贊
基于此問題,您可以安裝pyobjc和使用NSUserDefaults:
>>> from Foundation import NSUserDefaults
>>> NSUserDefaults.standardUserDefaults().stringForKey_('AppleInterfaceStyle')
'Dark'
添加回答
舉報
0/150
提交
取消