[英]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();
Output
是TextEdit
,谁能给我一些帮助以使其更快?
我可以使用 Qt 调度默认系统编辑器来打开文件吗??
首先,这就够了:
QFile file("farey.txt");
file.open(QFile::ReadOnly | QFile::Text);
ui->Output->setPlaintText(file.readAll());
第二个 - 在你的情况下最好的优化是逻辑优化。 您真的需要显示所有这些 70M 文件吗?
如果要将文件显示为纯文本,小部件QPlainTextEdit
比QTextEdit
更好。 它针对处理大型文档进行了优化,例如参见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.