如何使用Qt读取文件并快速显示?

时间:2015-09-28 14:34:54

标签: qt file

我必须使用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();

OutputTextEdit,有人可以给我一些帮助以加快速度吗?

我可以使用Qt调度系统默认编辑器来打开文件吗?

3 个答案:

答案 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"));