GTK / PyGTK ricercabile make ComboBox con tastiera
Domanda
E 'possibile fare una casella combinata ricercabile ? Se sì, come?
Voglio essere in grado, quando il ComboBox è attivo e una lettera viene digitato con la tastiera, per selezionare la prima voce che inizia con questa lettera all'interno del ComboBox e così via con le prossime lettere.
Lo è la stessa funzionalità di un ComboBox all'interno di una pagina web, per esempio.
non riesco a trovare alcuna opzione il raggiungimento di questo sul ComboBox o sul ListStore contenente i dati nello stesso modo come il TreeView ha i metodi set_enable_search
e set_search_column
.
Soluzione 2
Alla fine ho deciso di scrivere la mia funzione di completamento:
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
Altri suggerimenti
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow