Fli*_*imm 19 python gsettings dconf application-development
安装 Gsettings 架构的典型工作流程是这样的:
创建一个带有扩展名的架构,.gschema.xml内容如下:
<?xml version="1.0" encoding="UTF-8"?>
<schemalist>
<schema id="com.companyname.appname" path="/com/companyname/appname/">
<key type="b" name="mybool">
<default>false</default>
<summary>Example summary</summary>
<description>Example description</description>
</key>
</schema>
</schemalist>
Run Code Online (Sandbox Code Playgroud)将架构复制到/usr/share/glib-2.0/schemas/.
通过运行以下命令编译架构:
sudo glib-compile-schemas /usr/share/glib-2.0/schemas/
Run Code Online (Sandbox Code Playgroud)但是,写入/usr/share/glib-2.0/schemas/需要 root 权限。有没有办法将架构安装到非全局用户目录?
Fli*_*imm 23
您可以将 Gsettings 架构复制并编译到用户可写的目录中:
$ cp com.companyname.appname ~/schemas/
$ glib-compile-schemas ~/schemas/
Run Code Online (Sandbox Code Playgroud)
棘手的一点是配置应用程序以使用该特定目录。有两种方法可以做到这一点:
使用GSETTINGS_SCHEMA_DIR环境变量:
$ GSETTINGS_SCHEMA_DIR=~/schemas/ ./example.py
Run Code Online (Sandbox Code Playgroud)或者使用 GSettingsSchemaSource 和 GSettingSchema 对象:
如果您有权访问程序的源代码,则可以对其进行修改以从任何目录加载已编译的模式。下面是如何在 Python 中执行此操作,尽管您可以使用 GObject 内省在任何编程语言中执行此操作:
$ cp com.companyname.appname ~/schemas/
$ glib-compile-schemas ~/schemas/
Run Code Online (Sandbox Code Playgroud)| 归档时间: |
|
| 查看次数: |
9464 次 |
| 最近记录: |