2016-09-08 4 views
0

Ich baue eine App, die in einer Gcode-Datei einlesen wird. Dateien reichen von ein paar KB bis zu ein paar hundert MB (aber das ist selten). Nachdem ein Benutzer eine Datei ausgewählt hat, durchläuft das Programm diese Zeile und liest sie zeilenweise aus. Das dauert nicht lange.Was ist eine gute Möglichkeit, eine Menge Text in QT anzuzeigen

Ich möchte den Text der Datei anzeigen, die ich gerade in einem QTextEdit Widget eingelesen habe. Leider dauert dies sehr lange (ein paar Sekunden sogar für kleine Dateien).

Ich habe darüber nachgedacht, einfach eine "Laden, bitte warten" Nachricht für den Benutzer hinzuzufügen, aber ich fragte mich, ob es eine Möglichkeit gab, den Textladeprozess zu beschleunigen.

jetzt sieht mein Code wie folgt aus:

QTextStream in(gcodeFile); //The file path was given by the user 
ui->textEdit->setText(in.readAll()); 
in.seek(0); 
processGcode(); 

Gibt es eine bessere Art und Weise viel Text in eine QTextEdit zu laden, die die App hängen nicht machen?

Hinweis: Das Problem besteht nicht darin, dass ich die Datei zweimal durchlese. Ich habe meinen Code so geändert, dass er die Verarbeitung gleichzeitig mit dem Hinzufügen des Textes zum QTextEdit durchgeführt hat, aber das Ganze hat noch zu lange gedauert.

+0

Haben Sie versucht, 'QPlainTextEdit' zu verwenden? Es ist ein schlankeres Widget zum Anzeigen (und Bearbeiten) von Text, der nicht mit viel von dem, was 'QTextEdit' trägt, einhergeht (siehe [hier] (http://stackoverflow.com/a/17466240/1559401)). Wie die Beschreibung sagt, ist es optimiert, um große Dokumente zu handhaben und schnell auf Benutzereingaben zu reagieren. Dies scheint Ihr Fall zu sein. – rbaleksandar

+0

Oh wow! Vielen Dank, das ist perfekt. Wenn du dies als Antwort postest, werde ich es als korrekt markieren. – Memnarch1113

+0

Sag noch nicht Hurra, bevor du es ausprobierst. 'QPlainTextEdit' ist in den meisten Szenarien nicht viel schneller als' QTextEdit'. Sehen Sie, welche Verbesserung, wenn überhaupt, Sie tatsächlich bekommen. –

Antwort

0

"QPlainTextEdit ist ein erweiterter Viewer/Editor, der Klartext unterstützt. Er ist für die Verarbeitung großer Dokumente optimiert und reagiert schnell auf Benutzereingaben."

Sie können überprüfen, detaillierte Informationen von here.

Verwandte Themen