如何告诉 Kivy 在运行时使用默认值更新给定的配置?
我的应用程序中有一个“将设置重置为默认值”按钮,可以删除我的 Kivy Config 中的所有条目,包括
[kivy]
部分中的条目。
# delete all the options saved to the config file
sections = ['kivy','myapp','etc']
for section in sections:
for key in Config[section]:
Config.remove_option( section, key )
# write-out the changes to the .ini file
Config.write()
执行上述命令后,根据需要,我的 .ini 文件中留下了一个空的
[kivy]
部分。
问题是我的代码稍后有一个
NoOptionError
,它需要 Kivy 配置中的 default_font
选项
configparser.NoOptionError: No option 'default_font' in section: 'kivy
上面的代码擦除了 .ini 文件的
[kivy]
部分中的所有配置选项后,我如何告诉 Kivy 用默认值重新填充它?
当我重新启动应用程序时,Kivy 会根据需要重新填充 .ini 文件的
[kivy]
部分。我可以看到执行此操作的代码位于此处:
elif version == 16:
Config.setdefault('kivy', 'default_font', [
'Roboto',
'data/fonts/Roboto-Regular.ttf',
'data/fonts/Roboto-Italic.ttf',
'data/fonts/Roboto-Bold.ttf',
'data/fonts/Roboto-BoldItalic.ttf'])
但是我如何在运行时执行上述 kivy 代码,以便它使用默认值更新我的配置,而无需重新启动应用程序?
注意我知道我可以手动创建自己的
函数并调用build_config()
,我自己在字典中键入默认值。 这不是我所要求的。我问的是如何调用上面属于 kivy 的代码,因此该代码不是多余的并且是面向未来的。Config.setdefaults('kivy', {...})
我认为,如果您按照描述进行更改,则更改您的
Config
默认值不会对您当前运行的 App
产生任何影响。您只需让 Button
删除默认的 config.ini
即可强制重置。默认 config.ini
的路径位于 Config.filename
中。下次启动任何 kivy
应用程序时,将恢复默认设置。