GSettings
的配置文件是 xml
格式的,文件需以 .gschema.xml
结尾,文件名通常与 id
相同。配置文件安装在 /usr/share/glib-2.0/schemas/
目录下,手动添加进去的文件需要执行 sudo glib-complie-schemas /usr/share/glib-2.0/schemas
让其生效。
<?xml version="1.0" encoding="UTF-8"?> <schemalist> <schema path="" id=""> <key type="" name=""> <default></default> <summary></summary> <description></description> </key> </schema> </schemalist>
可以看到一个文件里可以包含多个 schema
,每个 schema
可由多个 key
组成。详细说明如下:
schema
中的 id
需要在整个配置系统中是唯一的,不然执行 glib-compile-schemas
时会忽略重复的 id
; id
的开头通常使用与应用相关的域名
schema
中的 path
必须是以 /
开头并且以 /
结尾,不能包含连续的 /
, path
用于指定在 storage
中存储路径,可以与 id
不一致
key
的名称,需要在此 schema
中是唯一的, name
的值由小写字母、数字和 -
组成,并且开头必须是小写字母,不能以 -
结尾,也不能出现连续的 -
key
的类型,需要是 GVariant
支持的类型,除了可以使用基本的类型外,也可按照 GVariant
的方式组合类型
key
的默认值
key
的简单描述
key
的详细描述
python如何修改呢?
from gi.repository import Gio # 导入Gio库 gso = Gio.Settings("com.gh.device.report") # string schema_id gso.set_int("report-type",1) # 传入值为key name/value,注意key的类型,选择set_boolean()/set_int()/set_string/set_double/set_enum等 a = gso.get_value("report-type")# 获取key的值 gso.set_boolean("https-enable",0) b = gso.get_value("https-enable")
可能会出现修改不成功情况,需要开启什么东西ps -eaf |grep dbus,我也不太懂,欢迎留言。
参考文档链接:
https://segmentfault.com/a/1190000019968756
https://valadoc.org/gio-2.0/GLib.Settings.Settings.html
原文:https://www.cnblogs.com/daibeisi/p/14825099.html