PyGtk - 激活组合框
如果我在pyGTK中有一个组合框(combo box),想要设置一串字符串,然后在点击其中一个时激活一个命令,我该怎么做呢?
目前我有:
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"
这个命令只有在选择后再按回车时才会被调用。我还收到了关于gtk.Combo()
的弃用警告,但找不到关于如何使用gtk.ComboBoxEntry()
的帮助。
大家能帮帮我吗?
1 个回答
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)
接下来,你需要连接 combobox
的 changed
信号,并使用它的 get_active()
方法来获取被选中的项目。
从这个解释中你可能会猜到,ComboBox 并不是特别适合这个用途。你可能更想用 gtk.Menu
。