Seite 1 von 1

QTextEdit, PlainText farblich hervorheben

Verfasst: 24. Dezember 2010 17:29
von Panke
Hallo Forum!

Ich habe (einfachen) Text ist einem QTextEdit. Dieser Text wird
automatisch gefüllt und vom Nutzer eingegeben. Bestimmte Wörter
dieses Textes möchte ich farblich hervorheben. Von diesen Wörtern
weiß ich [start, end)-Positionen im Text.

Mein Ansatz sieht ungefähr so aus. Das Wort "ist" wird auch richtig hervorgehoben. Mein Problem ist, dass Text der daraufhin direkt hinter "ist" eingegeben wird, die gleiche Formatierung hat, wie "ist" selber. Es soll aber ganz normal schwarz sein. Wie ändere ich die Farbe bestimmter Bereiche, ohne dieses Verhalten auszulösen?

Eine Teillösung des Problems ist es, den Text immer komplett zu löschen und neu einzufügen und dann wieder hervorzuheben. Jetzt habe ich das Problem, dass mein Cursor immer ans Ende des Textes springt, obwohl ich mir die Position vor der gesamten Aktion merke und als letztes den Cursor wieder auf eben diese Position setze. Kann das jemand erklären?

Verfasst: 24. Dezember 2010 21:06
von upsala
Kann man den QSyntaxHighlighter nicht dafür verwenden?

Verfasst: 24. Dezember 2010 22:09
von Panke
Da ich nicht mit regulären Ausdrücken arbeiten kann, um die Teile herauszupicken, die ich hervorheben muss, und diese nicht an Blockgrenzen enden, denke ich, dass das mit QSyntaxhighlighter eher schwieriger wird.

Verfasst: 24. Dezember 2010 22:34
von upsala
Der QSyntaxHighligher ist weder auf RegEx noch auf Blockgrenzen angewiesen.