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

linux高级编程 同时被 3 个专栏收录
22 篇文章 0 订阅
8 篇文章 0 订阅
38 篇文章 0 订阅

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

  • 4
    点赞
  • 5
    评论
  • 5
    收藏
  • 打赏
    打赏
  • 扫一扫,分享海报

评论 5 您还未登录,请先 登录 后发表或查看评论
©️2022 CSDN 皮肤主题:大白 设计师:CSDN官方博客 返回首页

打赏作者

ARMBULL

你的鼓励将是我创作的最大动力

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值