GTK / PyGTK make ComboBox durchsuchbar mit Tastatur
Frage
Ist es möglich, eine ComboBox zu machen durchsuchbare ? Wenn ja, wie?
Ich möchte in der Lage sein wird, wenn die ComboBox aktiv ist und ein Schreiben mit der Tastatur eingegeben, das erste Element mit diesem Brief in der ComboBox beginnen zu wählen und so weiter mit den nächsten Buchstaben.
Das ist die gleiche Funktionalität eines ComboBox innerhalb einer Webseite, zum Beispiel.
Ich kann nicht Option finde das erreicht dies auf dem ComboBox oder auf den ListStor die Daten in die gleichen Weise wie das TreeView enthalten, hat die Methoden set_enable_search
und set_search_column
.
Lösung 2
entschied ich mich schließlich meine eigene Vervollständigungsfunktion zu schreiben:
def func(menu, user_data, (widget, window)):
return (widget.get_allocation().x + window.get_position()[0],widget.get_allocation().y + window.get_position()[1],True)
def completion(self, widget, event):
alphanum = re.compile(r'[a-zA-Z0-9-]')
keyval = event.keyval
key = event.string
if keyval == 65288:
#DEL
self.text = self.text[:-1]
elif alphanum.match(key):
self.text = self.text+key
else:
self.yTree.get_widget("comp_menu").popdown()
self.text = ''
return
self.yTree.get_widget("comp_menu").popup( None, None, self.func, 1, event.time, (widget, self.wTree.get_widget('main_window')))
widget.grab_focus()
m = widget.get_model()
j = 0
for i in m:
if i[0].lower().startswith(self.text):
widget.set_active(j)
return
j+=1