如果我在pyGTK中有一个组合框并且想要设置一个字符串列表然后点击一个激活一个命令我该怎么办?
目前我有:
self.combo_key = gtk.Combo()
self.combo_key.set_popdown_strings(self.keys)
self.combo_key.entry.set_text(db.keys()[0])
self.combo_key.entry.connect("activate", self.key_sel)
但"activate"
仅在选择后调用,然后按Enter键。我也收到了gtk.Combo()
的弃用警告,但在使用gtk.ComboBoxEntry()
任何帮助人员?
答案 0 :(得分:2)
尝试使用gtk.ComboBox
代替gtk.Combo
,因为后者已被弃用而不赞成前者。要初始化,您可以编写如下代码:
liststore = gtk.ListStore(gobject.TYPE_STRING)
for key in self.keys:
liststore.append((key,))
combobox = gtk.ComboBox(liststore)
cell = gtk.CellRendererText()
combobox.pack_start(cell, True)
combobox.add_attribute(cell, 'text', 0)
现在您连接到changed
的{{1}}信号,并使用其combobox
方法询问所选项目。
正如您可能从此解释中猜到的那样,ComboBox并非完全用于此目的。您可能想要使用get_active()
。