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.
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