我正在编写一个 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
提交
取消