QSyntaxHighlighter im Hintergrund ausführen?

Alles rund um die Programmierung mit Qt
Antworten
NoRulez
Beiträge: 208
Registriert: 19. Juni 2007 15:43

QSyntaxHighlighter im Hintergrund ausführen?

Beitrag 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
upsala
Beiträge: 3946
Registriert: 5. Februar 2006 20:52
Wohnort: Landshut
Kontaktdaten:

Beitrag von upsala »

Schon mal versucht, den Highlighter vor dem Laden zu löschen und nach dem laden wieder zu erstellen?
NoRulez
Beiträge: 208
Registriert: 19. Juni 2007 15:43

Beitrag 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
upsala
Beiträge: 3946
Registriert: 5. Februar 2006 20:52
Wohnort: Landshut
Kontaktdaten:

Beitrag von upsala »

Wenn, dann so:

Code: Alles auswählen

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