2016-09-08 8 views
0

gcode 파일로 읽을 앱을 만들고 있습니다. 파일의 범위는 수십 KB에서 수백 MB입니다 (그러나 이는 드뭅니다). 사용자가 파일을 선택하면 프로그램이 파일을 검토하여 한 줄씩 읽습니다. 이것은 오래 걸리지 않습니다.QT에서 많은 텍스트를 표시하는 좋은 방법은 무엇입니까

방금 ​​QTextEdit 위젯에서 읽은 파일의 텍스트를 표시하고 싶습니다. 불행히도이 작업을 수행하는 데는 시간이 오래 걸립니다 (작은 파일의 경우에도 수 초가 소요됩니다).

"로드 중입니다. 기다려주십시오"라는 메시지가 사용자에게 표시되는 것을 생각했지만 텍스트로드 프로세스의 속도를 높이는 방법이 있는지 궁금합니다.

지금 내 코드는 다음과 같습니다

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

앱을 중지하지 것은 QTextEdit에 많은 텍스트를로드 할 수있는 더 나은 방법이 있나요?

참고 : 문제는 내가 파일을 두 번 읽는 것이 아닙니다. QTextEdit에 텍스트를 추가하는 것과 동시에 처리를 수행하도록 코드를 변경했지만 전체적으로 너무 오래 걸렸습니다.

+0

'QPlainTextEdit'을 사용해 보셨나요? 'QTextEdit'이 가지고 다니는 많은 것들이 포함되어 있지 않은 텍스트를 표시하고 편집하기위한 더 매끄러운 위젯입니다 ([here] (http://stackoverflow.com/a/17466240/1559401 참조)). 설명은 '대용량 문서를 처리하고 사용자 입력에 신속하게 응답하도록 최적화되어 있습니다.'라고 말하면서 귀하의 경우 인 것처럼 보입니다. – rbaleksandar

+0

와우! 고마워, 이건 완벽 해. 이 질문을 답으로 올리면 올바른 것으로 표시됩니다. – Memnarch1113

+0

그것을 시험해보기 전에 아직 만세를 말하지 마십시오. 'QPlainTextEdit'은 대부분의 시나리오에서'QTextEdit'보다 훨씬 빠릅니다. 실제로 어떤 개선이 있었는지 확인하십시오. –

답변

0

"QPlainTextEdit는 일반 텍스트를 지원하는 고급 뷰어/편집기로, 큰 문서를 처리하고 사용자 입력에 신속하게 응답하도록 최적화되어 있습니다."

here에서 자세한 내용을 확인할 수 있습니다.