刷新QTableWidget程序异常崩溃的解决办法

5 篇文章 0 订阅

解决方法:
clear()之后随即调用setRowCount(0)
另一种办法好像不管用:
//tableFileList1->clearSpans();
tableFileList1->clear();

代码如下:

void WidgetFileList::refreshTable()
{
	//tableFileList1->clearSpans(); //好像不管用
    tableFileList1->clear();
    tableFileList1 ->setRowCount(0);    **//务必加setRowCount(0),否则再次调用refreshTable()时会程序崩溃**
    myLogger->sendDebugInfor(DebugErro,QString("刷新前表格行数为%1").arg(tableFileList1->rowCount()));
    FileListWrapper.clear();
    for(auto i : TotalFileList)
        FileListWrapper.append(new DataInfor(NULL,i));

    for(auto i : FileListWrapper)
    {
        currentRow=tableFileList1->rowCount();
        tableFileList1->insertRow(currentRow);
        //tableFileList1->setItem(currentRow,0,new QTableWidgetItem(i->getStringTaskID()));
        tableFileList1->setCellWidget(currentRow,0,i->getCheckBox());
        tableFileList1->setItem(currentRow,1,new QTableWidgetItem(i->getStringTaskID()));
        tableFileList1->setItem(currentRow,2,new QTableWidgetItem(config::mapIntToQString(i->getdataType())));
        tableFileList1->setItem(currentRow,3,new QTableWidgetItem(i->getStringStartTime()));
        tableFileList1->setItem(currentRow,4,new QTableWidgetItem(QString(i->getStringEndTime())));
        tableFileList1->setItem(currentRow,5,new QTableWidgetItem(i->getStringFileSize()));

    }
    config::setupRightAlignment(tableFileList1,1,6);
    emit refreshAreaOneSpaceUsed();
    myLogger->sendDebugInfor(DebugErro,QString("刷新后表格行数为%1").arg(tableFileList1->rowCount()));


}

效果:
在这里插入图片描述

在这里插入图片描述

  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值