QSyntaxHighlighter Benutzung

Alles rund um die Programmierung mit Qt
Antworten
pfid
Beiträge: 535
Registriert: 22. Februar 2008 16:59

QSyntaxHighlighter Benutzung

Beitrag von pfid »

Ich wollte für eine Textsuche den QSyntaxHighlighter benutzen, um gefunden Stichwörter im Text hervorzuheben. Vom Prinzip her ist es klar wie ich es implementieren würde, nur weiß ich nicht wie ich den Highlighter ausschalten kann.

Ist es möglich, den Highlighter einfach abzuschalten ohne das Objekt zu löschen?
Und wäre es möglich, über einen einfachen Setter den Such-String an den Highlighter zu übergeben, so dass das betreffende Wort bzw. andere Wörter hervorgehoben werden?
Oder sollte man da lieber nicht den Highlighter verwenden, sondern irgendwas in Richtung

while (textEdit->find(foo)) cur.setFormat()

?
upsala
Beiträge: 3946
Registriert: 5. Februar 2006 20:52
Wohnort: Landshut
Kontaktdaten:

Beitrag von upsala »

Entweder Highligher löschen oder ihm per Flag mitteilen...

Ansonsten, wenn man mal nach dem QtScriptDebugger sucht. Der hat ein schönes Beispiel dabei, was man mit dem Highlighter noch alles anstellen kann...
pfid
Beiträge: 535
Registriert: 22. Februar 2008 16:59

Beitrag von pfid »

Habs jetzt per Flag geregelt. Funktioniert auch alles wie es soll. Dachte nur es wäre vllt ungeschickt, dass trotzdem immer highlighBlock() aufgerufen wird. Passiert dann ja während dem Tippen ständig. Aber so schlimm ist es wohl nicht.
pfid
Beiträge: 535
Registriert: 22. Februar 2008 16:59

Beitrag von pfid »

Wie ist das denn mit dem Ändern des verwendeten QTextEdits? Zum ein/ausschalten nutze im mittlerweile setDocument(0) bzw. setDocument(textEdit->document()), und das funktioniert prima.

Was nicht funktioniert, ist nach dem erstellen des Highlighters das QTextEdit zu wechseln. Für 3 QTextEdit Objekte (die in meinem Fall in einem QTabWidget untergebracht sind) brauche ich daher auch 3 Highlighter-Objekte. Geht das nicht anders?
upsala
Beiträge: 3946
Registriert: 5. Februar 2006 20:52
Wohnort: Landshut
Kontaktdaten:

Beitrag von upsala »

Nein, tut es nicht, wobei ein Highlighter normalerweise Speichermäßig nicht allzu groß sein sollte...
Antworten