Kivy - 配置对象
安装 Kivy 软件时,它会创建一个配置文件,其中包含各种参数及其默认值。该文件名为"config.ini",存储在由 KIVY_HOME 环境变量标识的目录中。
在 Windows 上:该文件存储在 C:\Users\user\.kivy\config.ini。
在 Linux 上:/home/user/.kivy/config.ini。
在 macOS 上:/Users/user/.kivy/config.ini。
在 Android 上:/data/data/org.kivy.launcher/files/.kivy/config.ini。
在 iOS 上:<HOME_DIRECTORY>/Documents/.kivy/config.ini。
为了更改默认设置,您可以手动更改此文件或使用 Config 对象。Config 对象的 read()、set() 和 write() 方法用于读取设置的值、分配新值并将更改写入配置文件。
from kivy.config import Config Config.read(<file>) Config.write() # 设置配置
您还可以通过设置环境变量(以编程方式或从 OS 终端)为仅对当前会话有效的任何配置参数(称为 token)分配值。
要从 Python − 设置环境变量
import os os.environ['KIVY_LOG_MODE'] = MIXED'
您还可以从 OS 终端设置环境变量。在 Windows 命令提示符终端中 −
set KIVY_LOG_MODE = MIXED'
在 Linux/MacOS 上 −
export KIVY_LOG_MODE = MIXED'
配置文件 config.ini 由一个或多个部分组成,每个部分由称为标记的参数组成。KIvy 安装的典型"config.ini"文件由 Kivy、Graphics、widgets 等部分组成。
要使用环境变量更改某个配置设置,请使用以下指令格式 −
KCFG_<section>_<key> = <value>
例如,设置日志级别 −
KCFG_KIVY_LOG_LEVEL= "warning"
可以使用以下语法以编程方式完成相同操作 −
os.environ["KCFG_KIVY_LOG_LEVEL"] = " warning"
配置标记
配置文件分为几个部分,每个部分由标记或参数组成。以下是按部分顺序给出的一些重要标记 −
Section - [Kivy]
default_font − 用于显示任何文本的小部件的默认字体。
desktop − int,0 或 1。此选项控制功能,例如在滚动视图中启用或禁用可拖动滚动条、在 TextInput 中禁用气泡等。
log_dir − 日志目录的路径。
log_level −字符串,可以是"trace"、"debug"、"info"、"warning"、"error"或"critical"。设置要使用的最低日志级别。
Section - [postproc]
double_tap_distance − 允许双击的最大距离,在 0 - 1000 范围内标准化。
double_tap_time − 允许检测双击的时间,以毫秒为单位。
triple_tap_distance − f允许三次点击的最大距离,在 0 - 1000 范围内标准化。
triple_tap_time −检测三次点击所允许的时间,以毫秒为单位。
Section [graphics]
fullscreen − 0、1、'fake' 或 'auto' 之一。
height − 窗口的高度,如果将全屏设置为自动,则不使用。
left − 窗口的左侧位置。
top − 窗口的顶部位置。
resizable − 0 或 1 之一 - 0 表示固定大小,1 表示可调整大小。
width −窗口的宽度,如果全屏设置为自动则不使用。
Section [widgets]
scroll_distance − ScrollView 小部件使用的 scroll_distance 属性的默认值。
scroll_timeout − ScrollView 小部件使用的 scroll_timeout 属性的默认值。
Config 对象的方法
add_section() − 如果缺少部分,则将部分添加到配置中。例如 −
Config.add_section('newsection')
get() − 获取给定部分的选项值。例如 −
Config.get('graphics', 'width')
set() − 为配置令牌分配值。示例 −
Config.set('graphics', 'width', 720)
write() − 使用 read() 方法将配置写入最后打开的文件。如果写入成功完成,则返回 True,否则返回 False。