[PYTHON] Implementieren Sie die inkrementelle ItemView-Suche einfach mit PySide

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.

Fehler

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

Implementieren Sie die inkrementelle ItemView-Suche einfach mit PySide
Implementieren Sie einfach Unterbefehle mit Python-Klick
Mit Supervisor einfach zu dämonisieren
Sequentielle Suche mit Python
Implementieren Sie FReLU mit tf.keras
Dichotomie mit Python
Machen Sie einfach einen Piepton mit Python
Dichotomie mit Python 3
Datenbank mit db.py durchsuchen
[Kausale Suche / kausale Folgerung] Implementieren Sie ein basianisches Netzwerk mit Titanic-Daten