繁体   English   中英

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

[英]How to use Qt to read a file and display it quickly?

我不得不使用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 调度默认系统编辑器来打开文件吗??

首先,这就够了:

QFile file("farey.txt");
file.open(QFile::ReadOnly | QFile::Text);
ui->Output->setPlaintText(file.readAll());

第二个 - 在你的情况下最好的优化是逻辑优化。 您真的需要显示所有这些 70M 文件吗?

如果要将文件显示为纯文本,小部件QPlainTextEditQTextEdit更好。 它针对处理大型文档进行了优化,例如参见QTextEdit vs QPlainTextEdit

QTextEdit是一个先进的 WYSIWYG 查看器/编辑器,支持使用 HTML 样式标签的富文本格式。

QTextEdit可以显示图像、列表和表格。

QPlainTextEdit是一个支持纯文本的高级查看器/编辑器。

QPlainText使用与QTextEdit非常相同的技术和概念,但针对纯文本处理进行了优化


可以使用QDesktopServices在默认系统文件处理程序中打开文件,例如:

QDesktopServices::openUrl(QUrl::fromLocalFile("file_path"));

您的问题可能是逐行附加文件的内容。 这迫使文档在每一行上重复布局 - 这就是速度变慢的原因。 setPlainText读取整个文件,并使用setPlainText在编辑器上设置它。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM