gpt4 book ai didi

python - 在 Python 中检测 OS 暗模式

转载 作者:行者123 更新时间:2023-12-03 14:21:14 25 4
gpt4 key购买 nike

我正在用 python 编写一个带有 GUI 的小程序,我正在使用 tkinter。我想做的是为我的程序添加暗模式支持。 Mac OS、Ubuntu(至少是 Gnome)和 Windows 10 都有一个系统范围的“黑暗模式”设置,这将使所有程序自动以黑暗主题运行。
但是我如何检查这些设置(理想情况下,与操作系统无关),以便我的程序知道它是否需要渲染亮模式或暗模式?我找到了一堆库,比如 darkdetect这将为 MacOS 处理此问题,但我没有找到适用于 Ubuntu 和 Windows 10 的任何内容。
我知道我可以使用 ttkthemes 之类的东西为我的程序创建一个黑暗主题的设计,但我怎么知道何时启用它?在 Windows 10 或 Ubuntu 20.04 上运行的 python 脚本如何确定用户是否在操作系统设置中启用了暗模式?
理想情况下,我正在寻找可以在所有三个操作系统上运行的解决方案/代码,但如果这不可能(正如我怀疑的那样),依赖于操作系统的代码也可以。我在任何地方都找不到非 MacOS 系统的正确示例。

最佳答案

Windows 10 快速解答

def detect_darkmode_in_windows(): 
try:
import winreg
except ImportError:
return False
registry = winreg.ConnectRegistry(None, winreg.HKEY_CURRENT_USER)
reg_keypath = r'SOFTWARE\Microsoft\Windows\CurrentVersion\Themes\Personalize'
try:
reg_key = winreg.OpenKey(registry, reg_keypath)
except FileNotFoundError:
return False

for i in range(1024):
try:
value_name, value, _ = winreg.EnumValue(reg_key, i)
if value_name == 'AppsUseLightTheme':
return value == 0
except OSError:
break
return False
  • 它检查是否 winreg可以导入,否则你可能没有使用 Windows
  • 搜索相关注册表项,如果没有找到,则认为没有开启深色模式
  • 如果注册表项存在且值设置为 0,则设置暗模式
  • 关于python - 在 Python 中检测 OS 暗模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65294987/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com