我一直在使用配置对象来存储和检索 kivy 中应用程序的设置。问题是配置对象是全局的,并且是为系统中的所有 kivy 应用程序设置的。
我目前使用的是什么:
from kivy.config import config
...App code
class UserAPP(App);
def build(self)
def build_config(self, config)
config.setdefaults() #multiple key,value pairs
我已经在 kivy 文档中搜索了执行此操作的方法,也许我在错误的位置或错误的术语中搜索。
我的问题是:如何将设置/信息保存到一个文件中,该文件可以在启动时加载并在关闭时保存,该文件是每个应用程序的本地文件?
你可以这样做:
from kivy.config import Config
Config.read('myApp.ini`)
然后操作
Config
后,您可以使用以下方法将其保存到同一文件中:
Config.write()
在您的 App 类中,您可以覆盖
get_application_config
并提供您自己的逻辑来确定 ini 文件的位置。
例如,您可以将配置文件存储在应用程序的数据目录中,至少在 Linux 上,该目录应该更合适,因为它是 XDG 位置。
import os
def get_application_config(self, default_path=''):
"""
override the base implementation to use the user_data_dir, which will be the proper location for app data
for linux, it is XDG based location, on Windows the APPDATA location, etc.
"""
default_path = os.path.join(self.user_data_dir, '%(appname)s.ini')
app_config_path = super().get_application_config(default_path)
return app_config_path