Obwohl es nicht bekannt ist, verfügt Qt über einen Standardmechanismus für die inkrementelle Suche nach ItemView.
QAbstractItemView::keyboardSearch
Mit dieser Funktion können Sie die Elementauswahl jedes Mal ändern, wenn Sie die Tastatur in ItemView drücken, ohne etwas zu tun. Das aktuelle Suchwort ist jedoch ausgeblendet und schwer zu verstehen, und IME wird nicht unterstützt, sodass eine japanische Artikelsuche nicht möglich ist.
Erstellen Sie einfach QLineEdit usw. wie eine herkömmliche Suchleiste und verbinden Sie die entsprechenden Steckplätze.
line_edit = QLineEdit()
tree_view = QTreeView()
def _search(search):
tree_view.keyboardSearch("") # search clear
tree_view.keyboardSearch(search)
line_edit.textChanged.connect(_search)
line_edit.returnPressed.connect(lambda:_search(line_edit.text()))
Der Grund für das Festlegen der Tastatursuche mit Leerzeichen ist das Zurücksetzen des Suchpuffers. Natürlich können Sie auch auf Japanisch suchen.
Es ist einfach, hat aber immer noch seine Nachteile.
Reduzierte Elemente können in QTreeView nicht durchsucht werden. Da dies eine Qt-Spezifikation ist, rufen Sie im Voraus expandAll () auf.
Recommended Posts