Hi,
Meine Anwendung besteht aus folgenden "Komponenten".
- MainWindow
- "Arbeiter"-Thread
- Window(Ergebnisfenster) zur Darstellung von Ergebnissen in nem TextEdit
und mein Problem ist folgendes:
Über das MainWindows wird der "Arbeiter"-Thread angeworfen. Dieser schreibt während er "arbeitet" Ergebnisse (html-Strings) in eine StringList. Diese übermittelt er dann am Ende mittels Signal an den Results-Slot des Ergebnisfensters. In diesem Slot geh ich die StringListe durch, und füge
nacheinander die Strings(Ergebnisse) via insertHtml() dem TextEdit hinzu und rufe dann Ergebnisfenster->show() auf. Das funktioniert bei wenigen Ergebnissen auch wunderbar. Jetzt kanns aber durchaus passieren, dass ich ne' große Anzahl von Ergebnissen darstellen muss (z.B. >800). Sobald nun das Ergebnisfenster dargestellt wird, geht die CPU-Last auf über 50% und die Gui reagiert dadurch nur noch sehr langsam.
Kann sich das jemand von euch erklären?
Bei Darstellung von viel Text in TextEdit geht CPU-Last hoch
-
M@g!ndo$ch
- Beiträge: 70
- Registriert: 7. Januar 2007 14:56
Das Thema hatten wir schon mal hier, eine Lösung war aber nicht dabei IIRC. Je mehr da drin steht, desto mehr muss eben geparst werden. 800 Einträge sollten eigentlich noch kein Problem darstellen, aber ich weiß ja auch nicht wie lang die Einträge sind und ob es sich überhaupt um korrektes HTML handelt 
-
M@g!ndo$ch
- Beiträge: 70
- Registriert: 7. Januar 2007 14:56
If I Remember Correctly, Hier mehr davon.M@g!ndo$ch hat geschrieben:Was genau heisst denn bitte IIRC ???
Keine Ahnung, probier es aus.M@g!ndo$ch hat geschrieben:Lässt sich das Problem umgehen wenn ich kein html benutze?
M@g!ndo$ch hat geschrieben:/noobmode on
Was genau heisst denn bitte IIRC ???
/noobmode off
Für Linux installier dir wtf. Nettes Consolen-Tool, da kannste von vielen Abkürzen schnell den sinn nachschlagen, z.B.:
Code: Alles auswählen
$ wtf iirc
IIRC: if I recall correctly
$ wtf wtf
WTF: {what,when,where,who,why} the fuck
$ wtf imho
IMHO: in my humble opinionFranz
-
M@g!ndo$ch
- Beiträge: 70
- Registriert: 7. Januar 2007 14:56
@franzf: Thx für den Tip
Wäre bestimmt nützlich, muss mich allerding als Windowsnutzer outen 
Zu dem Problem hab ich mal folgendes getestet:
Hab ne' Schleife mit 2000 Durchläufen nen' TestString ins TextEdit schreiben lassen. Einmal mit insertHtml() und einmal mit insertPlainText().
Und siehe da! Es liegt wohl am Html!!! Bei insertPlainText() funktioniert alles wunderbar....
Gruß M@g!ndo$ch
Zu dem Problem hab ich mal folgendes getestet:
Hab ne' Schleife mit 2000 Durchläufen nen' TestString ins TextEdit schreiben lassen. Einmal mit insertHtml() und einmal mit insertPlainText().
Code: Alles auswählen
char* testString = "<b>Dies ist ein TestString !!!!</b>........<br>\n";
for(int i=0;i<=2000;i++)
{
resultTextEdit->insertHtml(testString);
}
Gruß M@g!ndo$ch