做了一个小程序,打开文本文件,然后在QTextEdit中显示。但若文件很大,比如有1M以上的话,打开就很慢。(其实1M以下也有些慢,但速度尚可接受)。
我试过启一个线程来从文件里一行一行地读,速度更慢。
分析了一下,readAll()并不算很慢,但将读到的内容insert到QTextEdit中去感觉挺慢的。
大家有没有什么意见和建议啊~
我写的代码是这样:
QString fileName = "";
fileName = QFileDialog::getOpenFileName(this,
tr("Open File"), "", "LOG Files (*.txt *.log)");
if (!fileName.isEmpty()) {
myEditor->TE_Content->clear();
CurrentFileName=fileName;
//直接打开文件
qDebug() << "before open file:" << QTime::currentTime();
QFile file(fileName);
if (!file.open(QFile::ReadOnly | QFile::Text)) {
QMessageBox::warning(this, tr("Log Reader"),
tr("Cannot read file %1:\n%2.")
.arg(fileName)
.arg(file.errorString()));
return ;
}
QTextStream in(&file);
QApplication::setOverrideCursor(Qt::WaitCursor);
this->myEditor->TE_Content->setPlainText(in.readAll());
QApplication::restoreOverrideCursor();
qDebug() << "end open file:" << QTime::currentTime();
}else
{
qDebug() << "select file first!";
}
[ 此贴被XChinux在2008-07-19 21:38重新编辑 ]