Autovervollständigung und Leerstellen (QCompleter+Delimiter)

Alles rund um die Programmierung mit Qt
Antworten
lx2
Beiträge: 75
Registriert: 5. Mai 2009 03:13

Autovervollständigung und Leerstellen (QCompleter+Delimiter)

Beitrag von lx2 »

Hi Forum und QTler,

ich hab mir mal die abgeleitete Textfeld-Klasse, die eine Autovervollständigung zu Verfügung stellt, von hier geklaut: ;)
http://doc.qt.nokia.com/4.7-snapshot/to ... leter.html
und in meinem Projekt eingebaut.

Funktioniert soweit prächtig, bis auf eine ärgerliche Kleinigkeit.
Wenn mein Ausdruck aus mehreren Wörtern besteht (und das ist in meiner Wörterliste häufig der Fall), wird die Autovervollständigung ganau dann abgebrochen wenn ich "Space" drücke.

Beispiel:
Meine Liste besteht aus
-getrocknete Aprikosen
-getrocknete Apfelscheiben
-getrocknete Ananasstücke


Ich gebe "getrocknete_" ein, und des Autocomplete-Popup schließt sich. Ich möchte aber natürlich noch "an" eingeben, damit er mir die "getrocknete Ananasstücke" auswählt :D

Jetzt hab ich mal zu Debuggingzwecken am Nokia-Code bisschen rumgefummelt, so dass das PopUp immer aufbleibt und siehe da, "Space" hat so eine Art Delimiterfunktion. Sobald "Space" gedrückt wird, wird die Liste von neuem durchsucht. Ich möchte natürlich, dass "Space" genauso wie ein stinknormaler Buchstabe abgehandelt wird. Ich nehm mal an, diese Delimiterfunktionalität ist fest in QCompleter.cpp verankert.

Hat jemand eine Idee wie ich das unterdrücken kann? (Evtl. hab ich ja ne Methode/Flag von QCompleter übersehen). Auserdem: bei nem QLineEdit gibt es dieses Problem von Haus aus nicht. Da Bleibt das PopUp auch nach Leerstellen auf...

Übrigens, so ein ähliches Problem wird auch hier geschildert:
http://stackoverflow.com/questions/4661 ... iple-words

EDIT:
Nokia benutzt anscheinend den Begriff "seperator" anstatt "delimiter"
Antworten