我必须使用Qt显示文件的上下文,其大小为70M,但速度太慢,需要几分钟才能显示。
QFile file("farey.txt");
file.open(QFile::ReadOnly | QFile::Text);
QTextStream ReadFile(&file);
while (!ReadFile.atEnd()) {
QString line = ReadFile.readLine();
ui->Output->append(line);
}
file.close();
Output
是TextEdit
,有人可以给我一些帮助以加快速度吗?
我可以使用Qt调度系统默认编辑器来打开文件吗?
答案 0 :(得分:2)
首先,这就足够了:
QFile file("farey.txt");
file.open(QFile::ReadOnly | QFile::Text);
ui->Output->setPlaintText(file.readAll());
第二个 - 在您的情况下最佳优化它的逻辑优化。你真的需要显示所有这个70M文件吗?
答案 1 :(得分:1)
您的问题可能是逐行附加文件的内容。这迫使文档在每一行上重复布局 - 这是导致减速的原因。一次读取整个文件,然后使用setPlainText
在编辑器中进行设置。
答案 2 :(得分:1)
如果要将文件显示为纯文本,则小部件QPlainTextEdit
优于QTextEdit
。它经过优化处理大型文档,例如,请参阅QTextEdit vs QPlainTextEdit
QTextEdit
是一个支持富文本的高级WYSIWYG查看器/编辑器 使用HTML样式标签进行格式化。
QTextEdit
可以显示图像,列表和表格。
QPlainTextEdit
是支持纯文本的高级查看器/编辑器。
QPlainText
使用的技术和概念非常相似QTextEdit
,但针对纯文本处理进行了优化。
可以使用QDesktopServices
默认系统文件处理程序打开文件,例如:
QDesktopServices::openUrl(QUrl::fromLocalFile("file_path"));