您的位置:首页 > 编程语言 > Qt开发

关于QTableWidget插入数据库数据很慢的原因

2012-08-28 14:32 525 查看
一开我以为QTableWidget是因为数据量过大的原因导致的.因为有1000多条数据,还有6列.就1000*6,后来我测试发现时间都耽误在了insertRow()上,我恍然大悟,6000多条数据对于CPU来说也是小菜一碟啊.我估计是插入行的时候需要建表导致变慢,我索性把数据库中数据条数读出来,然后采取一次性插入,速度上确实提高了不少.以前在ARM板卡上运行要1-2分钟,现在只要几秒钟就OK了.此时你是否想知道代码是如何的?别急容我在啰嗦几句,其实用MVC的方式更加好,因为这样可以避免内存浪费.QTableView和QSqlTableModel是完美的配合.不过此方法我没有用.在这里只是记录下,防止下次碰到了,需要使用.下面是我的解决问题的方法.

int row=tableWidgettemp->rowCount();
QString strtemp;

query.last();
int tablecount = query.at() + 1;
tableWidgettemp->setRowCount(tablecount);

query.first();
while(row < tablecount)
{
for(int i=0; i<=columnNum; i++)
{
strtemp = query.value(i).toString();
tableWidgettemp->setItem(row,i,new QTableWidgetItem(strtemp));
}
row++;
query.next();
}

tableWidgettemp->selectRow(row-1);
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: