如何在我自己的gtk程序中使用GSettings

如何在我自己的gtk程序中使用GSettings,gtk,Gtk,我正在编写一个gtk程序,我试图利用GSetings来存储我自己的程序设置。但该程序在语句“GSettings*settings=g_settings_new(SCHEMA);”处失败,该语句中有一条来自termial的消息,该消息称“settings SCHEMA.”未安装。在创建GSettings对象之前,必须安装设置架构吗?如果有,怎么做?如果没有,我应该如何存储设置?有比使用GSettings更好的方法吗?你猜对了;必须先安装架构,它才能工作。这很烦人,因为如果不安装程序,就无法从开发目

我正在编写一个gtk程序,我试图利用GSetings来存储我自己的程序设置。但该程序在语句“GSettings*settings=g_settings_new(SCHEMA);”处失败,该语句中有一条来自termial的消息,该消息称“settings SCHEMA.”未安装。在创建GSettings对象之前,必须安装设置架构吗?如果有,怎么做?如果没有,我应该如何存储设置?有比使用GSettings更好的方法吗?

你猜对了;必须先安装架构,它才能工作。这很烦人,因为如果不安装程序,就无法从开发目录运行程序。幸运的是,如果您使用Autotools,很容易做到正确:

configure.ac
中,包括行

GLIB_GSETTINGS
然后将其放入
Makefile.am

gsettings_SCHEMAS = org.my-domain.gschema.xml
@GSETTINGS_RULES@

其中,
org.my domain
是一个反向域名,用于标识您的模式。

您猜对了;必须先安装架构,它才能工作。这很烦人,因为如果不安装程序,就无法从开发目录运行程序。幸运的是,如果您使用Autotools,很容易做到正确:

configure.ac
中,包括行

GLIB_GSETTINGS
然后将其放入
Makefile.am

gsettings_SCHEMAS = org.my-domain.gschema.xml
@GSETTINGS_RULES@

其中,
org.my domain
是一个反向域名,用于标识您的架构。

我按照您所说的做了。此外,我将xml文件的路径添加到了EXTRA_DIST,但仍然发生了错误!我注意到编译器找到了xml文件,它可以识别xml中的语法错误。是否确保变量
SCHEMA
包含正确的架构名称?是的,我确定。我的模式类似于“org.My domain”。即使我得到了不正确的名称,我也可以创建一个新的模式。但是当我执行命令“gsettingslistschemas”时,我找不到任何与我的模式名称相似的模式。哦,你找到了!!非常感谢你!!我照你说的做了。此外,我将xml文件的路径添加到了EXTRA_DIST,但仍然发生了错误!我注意到编译器找到了xml文件,它可以识别xml中的语法错误。是否确保变量
SCHEMA
包含正确的架构名称?是的,我确定。我的模式类似于“org.My domain”。即使我得到了不正确的名称,我也可以创建一个新的模式。但是当我执行命令“gsettingslistschemas”时,我找不到任何与我的模式名称相似的模式。哦,你找到了!!非常感谢你!!