使用一个相当简单的模式,只有一个布尔键,我无法得到dconf-编辑器接受该键实际上是在任何地方定义的,当我从 dconf-editor 导航到该键时,我收到一条警告,提示该键没有模式,并建议我将其删除。
设定(命令行工具)允许我很好地提取描述,表明架构是dconf-editor
安装正确。通过 gsettings 操作和读取密钥似乎运行良好,并且结果确实实时显示。
我的架构:
<?xml version="1.0" encoding="UTF-8"?>
<schemalist gettext-domain="example-schema">
<schema
id="org.example.schema"
path="/org/example/schema/"
>
<key name="boolean_value" type="b">
<default>false</default>
<summary>A boolean value</summary>
<description>A value that may be either true or false</description>
</key>
</schema>
</schemalist>
我已将架构放入/usr/share/glib-2.0/schemas
,然后glib-compile-schemas .
在 内部运行/usr/ share/glib-2.0/schemas
。此后,当我使用 进行查询时gsettings
,架构确实会显示出来,并且我可以访问boolean_value
密钥。
我正在 Fedora 31(没有 Ask Fedora)上开发这个,使用 dconf-editor 3.34.4 和 gsettings 版本 2.62.5。
答案1
dconf-editor 实际上并不会对数据库进行任何适当的检查,而是在已知路径和 ID 之间进行映射,并利用这些映射来确定如何描述密钥。此列表已硬编码到程序中,需要重新编译才能更新。
结果是,除非您的模式在该列表中,否则 dconf-editor 将不会知道它;如果您希望用户从 dconf-editor 获得良好的反馈,您需要修改他们的程序版本,编译它然后安装它。