可以动态创建gsettings吗?

Posted

技术标签:

【中文标题】可以动态创建gsettings吗?【英文标题】:Can gsettings be created dynamically? 【发布时间】:2015-09-30 13:27:35 【问题描述】:

我很好奇 gsettings 是否可以用于存储对象,还是必须静态设置所有内容?诸如用户对象之类的对象可以存储在 gsettings 中吗?是否可以通过每个用户的固定属性添加和删除用户?

【问题讨论】:

【参考方案1】:

在docs 中,他们提到了您可以使用g_settings_new_with_path() 创建的“可重定位”模式。这允许您在不同位置动态存储具有相同架构的“对象”。因此,您可以创建 /org/mysite/users/bob/ 并在其中拥有像 full-name 这样的属性,每个用户“对象”都会拥有。您仍然会存储一个引用它们的列表以了解存在哪个模式。要删除它们,您可以在每个键上使用 g_settings_reset()

【讨论】:

听起来不是它的本意。您确实需要一种方法来获取路径中的对象列表。将您拥有的对象数组存储在另一个键中听起来有点 hacky。此外,向架构添加更新听起来真的很难 - 但我不是 100% 确定这一点。 通过设计可重定位增加了一些复杂性,例如能够跟踪创建它们的架构,但它是受支持和可用的。

以上是关于可以动态创建gsettings吗?的主要内容,如果未能解决你的问题,请参考以下文章

您可以在 PHP 中动态创建实例属性吗?

每次新创建动态图都需要点击新建按钮吗

从动态内容创建视频电影

创建动态变量名

可以在C ++中使用动态分配的参数数创建函数吗?

对动态创建的数组使用 static 关键字有啥意义吗?