Implémentez facilement la recherche incrémentielle ItemView avec PySide

Bien qu'il ne soit pas bien connu, Qt dispose d'un mécanisme standard de recherche incrémentielle pour ItemView.

QAbstractItemView::keyboardSearch

Avec cette fonctionnalité, vous pouvez changer de sélection d'élément chaque fois que vous appuyez sur le clavier sur ItemView sans rien faire. Cependant, le mot de recherche actuel est masqué et difficile à comprendre, et IME n'est pas pris en charge, de sorte que la recherche d'élément japonais n'est pas possible.

Créez simplement QLineEdit etc. comme une barre de recherche conventionnelle et connectez les emplacements appropriés.

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()))

La raison de la définition de keyboardSearch avec des caractères vides est de réinitialiser le tampon de recherche. Bien sûr, vous pouvez également rechercher en japonais.

Démérite

C'est facile, mais cela a toujours ses inconvénients.

Les éléments qui ont été réduits ne peuvent pas être recherchés dans QTreeView. Puisqu'il s'agit d'une spécification Qt, appelez à l'avance expandAll ().

Recommended Posts

Implémentez facilement la recherche incrémentielle ItemView avec PySide
Implémentez facilement des sous-commandes avec python click
Facilement démonisé avec Supervisor
Recherche séquentielle avec Python
Implémenter FReLU avec tf.keras
Dichotomie avec python
Faites facilement un bip avec python
Dichotomie avec Python 3
Rechercher une base de données avec db.py
[Recherche causale / inférence causale] Implémentez un réseau Basian avec des données Titanic