如何让kivy在运行时在Config中设置默认值?

问题描述 投票:0回答:1

如何告诉 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()
函数并调用
Config.setdefaults('kivy', {...})
,我自己在字典中键入默认值。 不是我所要求的。我问的是如何调用上面属于 kivy 的代码,因此该代码不是多余的并且是面向未来的。

python kivy default configparser
1个回答
0
投票

我认为,如果您按照描述进行更改,则更改您的

Config
默认值不会对您当前运行的
App
产生任何影响。您只需让
Button
删除默认的
config.ini
即可强制重置。默认
config.ini
的路径位于
Config.filename
中。下次启动任何
kivy
应用程序时,将恢复默认设置。

© www.soinside.com 2019 - 2024. All rights reserved.