相关疑难解决方法(0)

给定100k项目时,QListView需要很长时间才能更新

我有一个阅读文件的问题,具体是我想做一个小字典.在我需要阅读的文件中有如下内容:

a   Ph  P6
a   snsr    CA
a b c   fb  Dj
a b c - book    i+  BS
A except B gate oOPa    y
a font  kQ  BU
[....]
Run Code Online (Sandbox Code Playgroud)

它有大约109.000行,文件大小约2MB.在我的QT应用程序中,我这样编码来读取和添加项目到QListWidget:

QString sWord;
QFile inFile("C:\\EV\\ev.index");

inFile.open(QIODevice::ReadOnly|QIODevice::Text);
QTextStream in(&inFile);
while(!in.atEnd())
{
     sWord = in.readLine();
     myListWidget->addItem(sWord); //myListWidget is a QListWidget
}
Run Code Online (Sandbox Code Playgroud)

但它读得太久了!起初我认为原因是我的应用程序逐行读取,所以我再次编码它:

QString data;
QStringList listWord;
QFile inFile("C:\\EV\\ev.index");


inFile.open(QIODevice::ReadOnly|QIODevice::Text);
QTextStream in(&inFile);
data.append(in.readAll());
listWord.append(data.split('\n'));
myListWidget->addItems(listWord);
inFile.close();
Run Code Online (Sandbox Code Playgroud)

它工作得更快!(自应用程序启动以来大约5秒),仍然很长,我希望它读得更快.我该怎么办?

qt

3
推荐指数
1
解决办法
1581
查看次数

标签 统计

qt ×1