2016-09-08 6 views
0

gcodeファイルで読むアプリケーションを構築しています。ファイルの範囲は数KBから数百MBです(ただしこれはまれです)。ユーザーがファイルを選択すると、プログラムはファイルを1行ずつ読み込みます。これは全く時間がかかりません。QTでたくさんのテキストを表示するには良い方法は何ですか?

ちょうどQTextEditウィジェットで読み込んだファイルのテキストを表示したいと思います。残念ながら、これを行うには本当に長い時間がかかります(小さなファイルでさえ数秒です)。

私は「ロードしてください」というメッセージをユーザに追加することを考えましたが、テキスト読み込みプロセスを高速化する方法があるかどうかは疑問でした。

は今の私のコードは次のようになります。

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

アプリがハングアップすることはありませんQTextEditに大量のテキストをロードするためのより良い方法はありますか?

注:問題は私がファイルを2度読んでいるということではありません。 QTextEditにテキストを追加するのと同時にコードを処理するようにコードを変更しましたが、全体的にはまだ時間がかかりました。

+0

あなたは 'QPlainTextEdit'を使ってみましたか? 'QTextEdit'が何度も持ち歩くことのないテキストを表示(および編集)するためには、より滑らかなウィジェットです([here](http://stackoverflow.com/a/17466240/1559401参照))。この説明には、「大きな文書を処理し、ユーザーの入力に素早く応答するために最適化されています」と記載されているため、あなたのケースと思われます。 – rbaleksandar

+0

ああ、うわー!ありがとう、これは完璧です。これを回答として投稿すると、正しいものとしてマークされます。 – Memnarch1113

+0

それを試してみる前にハーマレーを言ってはいけません。 'QPlainTextEdit'はほとんどのシナリオで' QTextEdit'よりずっと高速です。あなたが実際にどんな改善をしているかを見てください。 –

答えて

0

"QPlainTextEditは、プレーンテキストをサポートする高度なビューア/エディタです。大きなドキュメントを処理し、ユーザーの入力に素早く応答するように最適化されています。

チェック詳細情報はhereです。

関連する問題