[英]What is the meaning of the a(ss) type in the dconf, and what are the correct methods of gi.repository.Gio.Settings to get/set such fields?
在Gnome上,我一直在玩dconf。 我正在嘗試編寫一些Python腳本來自己操作某些條目。 其中一些具有類型a(ss)
。 所以我的第一個問題是:這種類型是什么意思?
我正在這樣處理dconf:
from gi.repository import Gio
entries = Gio.Settings.new(path)
value1 = entries.get_string(key1) # for reading a string value
entries.set_string(key2, value2) # for writing a string value
在我嘗試使用類型為a(ss)
的鍵之前,這種方法可以正常工作。 方法set_string()
get_string()
和set_string()
因類型錯誤而失敗。 所以我的第二個問題是:在這種情況下使用什么正確的方法?
我在Ubuntu 14.10上使用Python 3.4.2。
好吧,我的搜索沒有顯示任何信息,但是通過玩弄各種方法,我設法提出了一個解決方案:
from gi.overrides import GLib
value1 = entries.get_value(key1).unpack() # returns e.g. [("a", "b"), ("c", "d")]
entries.set_value(key2, GLib.Variant("a(ss)", value2)) # value2 is e.g. [("a", "b"), ("c", "d")]
由於這只是我自己編寫的(有效的)代碼,在不完全了解正在發生的情況的情況下,我將等待一段時間,以查看是否有人可以就此問題和/或提供更多信息。在接受自己的答案之前,請使用更整潔的解決方案(或至少讓我確信我做對了)。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.