2014-06-25 30 views
1

我下面http://www.micahcarrick.com/gsettings-python-gnome-3.html使用GSettings从蟒蛇,我已经成功地读取值:如何使用python中的g_settings_schema_g​​et_key?

from gi.repository import Gio 
gso=Gio.Settings.new("org.gnome.desktop.wm.preferences") 
gso.get_value("focus-mode") 

这会返回一个“GLib.Variant”,一组枚举值之一。为了得到有效的枚举我可以设置,我用:

gso.get_range("focus-mode") 

然而,文件说,因为2.40版本

g_settings_get_range已被弃用,不应该在新编写的代码中使用。 改为使用g_settings_schema_key_get_range()。

那么,如何从python使用g_settings_schema_key_get_range?

更一般地说,我该如何反思Gio,以了解如何从给定C文档的python中使用它?

回答

2

可以使用常规的Python解释器检查:

>>> from gi.repository import Gio 
>>> help (Gio) 
>>> help (Gio.Settings) 
>>> help (Gio.SettingsSchema) 

...等。它并不总是非常有帮助,但至少可以看到函数是否存在于名称空间中。基于文档,我期望这样的工作:

schema = gso.get_property('settings-schema') 
if (schema.has_key('focus-mode')): 
    key = schema.get_key('focus-mode') 
    print (key.get_range())