Seite 1 von 1

QSyntaxHighlighter im Hintergrund ausführen?

Verfasst: 11. Juli 2007 21:01
von NoRulez
Hey @all,

ich verwende zum Highlighten eine Klasse die von QSyntaxHighlighter gesubclassed wurde. das Highlighting selbst findet dann in der Methode void highlightBlock(const QString &text); statt.

Wenn ich nun ein größeres Dokument öffne, braucht es eine kleine Ewigkeit bis der Text gehighlightet dargestellt wird. Gibt es die Möglichkeit das Highlighten im Hintergrund stattfinden zu lassen, das somit die Ladezeit bis man mit dem Text arbeiten kann reduziert wird?

Lg NoRulez

Verfasst: 11. Juli 2007 22:02
von upsala
Schon mal versucht, den Highlighter vor dem Laden zu löschen und nach dem laden wieder zu erstellen?

Verfasst: 11. Juli 2007 23:04
von NoRulez
Ich mache das ganze wie folgt

Code: Alles auswählen

if(syntax != NULL) {
    delete syntax;
    syntax = NULL;
}

syntax = new Syntax(ui.textEdit);
.
.
.
ui.textEdit->setText(this->text_to_parse);

Also im Prinzip lösche ich die Instanze und erzeuge sie wieder. Ist aber trotzdem sau langsam :(

Lg NoRulez

Verfasst: 12. Juli 2007 09:06
von upsala
Wenn, dann so:

Code: Alles auswählen

ui.textEdit->setText(this->text_to_parse); 
syntax = new Syntax(ui.textEdit);