簡體   English   中英

dconf中a(ss)類型的含義是什么,獲取/設置此類字段的gi.repository.Gio.Settings的正確方法是什么?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM