def __init__(self, keyfile, settings, key, options, valtype="string"):
self.key = key
self.keyfile = keyfile
try:
self.value = keyfile.get_string(GROUP_NAME, key)
except:
self.value = settings.get_string(key)
Gtk.ComboBox.__init__(self)
renderer_text = Gtk.CellRendererText()
self.pack_start(renderer_text, True)
self.add_attribute(renderer_text, "text", 1)
self.set_valign(Gtk.Align.CENTER)
# assume all keys are the same type (mixing types is going to cause an error somewhere)
var_type = type(options[0][0])
self.model = Gtk.ListStore(var_type, str)
self.valtype = valtype
self.option_map = {}
for option in options:
self.option_map[option[0]] = self.model.append([option[0], option[1]])
self.set_model(self.model)
self.set_id_column(0)
if self.value in self.option_map.keys():
self.set_active_iter(self.option_map[self.value])
self.connect("changed", self.on_changed)
评论列表
文章目录