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.

War es hilfreich?

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

Andere Tipps

scroll top