PyGtk - 激活组合框

1 投票
1 回答
763 浏览
提问于 2025-04-16 06:22

如果我在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)

接下来,你需要连接 comboboxchanged 信号,并使用它的 get_active() 方法来获取被选中的项目。

从这个解释中你可能会猜到,ComboBox 并不是特别适合这个用途。你可能更想用 gtk.Menu

撰写回答