【问题标题】:What GLib type should a{ss} map to when using GSettings?使用 GSettings 时,{ss} 应该映射到什么 GLib 类型?
【发布时间】:2018-03-15 06:10:46
【问题描述】:

我有一个带有a{ss} 类型键的 gsettings 架构。我想将所述键绑定到对象上的属性。我已经成功地将g_settings_bindg_settings_bind_with_mapping 与其他键一起使用,但我不知道将此键映射到什么类型。 GVariant 是一个包含键字符串和值字符串的字典数组,但那是什么类型的 glib 呢?

【问题讨论】:

    标签: dictionary glib gsettings gvariant


    【解决方案1】:

    您需要使用g_settings_bind_with_mapping(),因为a{ss}not supported by g_settings_bind()a{ss} 是一个将字符串映射到字符串的字典,我可能会在 GLib 中将它表示为 GHashTable 将字符串映射到字符串。

    【讨论】:

    • 如果我错了,请纠正我,但是a{ss} 不能包含重复的键,而GHashTable 中的键必须是唯一的?
    • 你错了。 a{ss} 是 D-Bus 术语中的字典,定义为不接受重复键 (dbus.freedesktop.org/doc/…)。你可能会想到a(ss),它是一个元组数组,没有这样的限制。
    猜你喜欢
    • 2015-12-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-03-20
    • 1970-01-01
    • 2015-02-20
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多