2010-10-31 4 views
1

Если у меня есть поле со списком в pyGTK и вы хотите установить список строк, а затем щелкнуть мышью, активируйте команду, как бы я это сделал?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" называет только после выбора, а затем, нажав кнопку ввода. Я также получаю предупреждение от устаревания для gtk.Combo(), но не могу найти справку по использованию gtk.ComboBoxEntry()

Любые помощь ребята?

ответ

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 сигнала combobox и использовать его метод get_active() задать для элемента, который был выбран.

Как вы могли догадаться из этого объяснения, ComboBox не совсем создан для этой цели. Возможно, вы захотите использовать gtk.Menu.

Смежные вопросы