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

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

你可能感兴趣的:(mvc,数据库,测试)