2010-10-31 60 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"只要求選擇後,然後按Enter鍵。我也得到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) 

現在您連接到comboboxchanged信號,並使用其get_active()方法,要求入選該項目。

正如你可能從這個解釋中猜到的那樣,ComboBox並不是完全用於這個目的。您可能想要使用gtk.Menu