bonjour a tous,
je bloque actuellement sur un probleme avec une lineEdit et un qcompleter.
quand je tape dans ma lineEdit le début d'un mot, pas de probleme, par contre si les lettres tapé sont au milieu du terme recherché, ca ne ressort pas de résultat.
exemple : je tape "a", j'ai pour résultat -amélie, -arnaud, mais pas jean-claude.
j'ai consulté pas mal de site, beaucoup parle de recherche sur plusieurs mot ("chicken soup", "chilli peppers", "grilled chicken" par exemple, ch doit faire ressortir les trois termes et non les deux premiers)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 Data = cursor.execute("SELECT nom FROM proprietaire") listData = [unicode(i[0]) for i in Data] #création de la liste utilisé par la lineEdit self.lineEdit = LineEdit(parent=self.dockWidgetContents, completerContents=listData) self.verticalLayout_4.addWidget(self.lineEdit) class LineEdit(QtGui.QLineEdit): def __init__(self, parent, completerContents): super(LineEdit, self).__init__(parent) self.completerList = list() for content in completerContents: self.completerList.append(content)#Appends a new paragraph with text to the end of the text edit. self.completer = QtGui.QCompleter(self.completerList, self) self.completer.setCompletionMode(QtGui.QCompleter.PopupCompletion)#affiche une popup avec une liste de suggestion self.completer.setCaseSensitivity(QtCore.Qt.CaseInsensitive)#définit la sensibilité a la casse self.setCompleter(self.completer)
mais je n'ai pas trouvé le moyen de chercher par le "milieu" (ou la fin)
j'espere que vous pourrez m'aider
Partager