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

来源:互联网 发布:施工预算软件下载 编辑:程序博客网 时间:2024/06/05 23:00

一开我以为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);