|
4Qter豆
我在一个函数里把QTableWidget设置成2行3列,给每个单元格设置了QTableWidgetItem,当我第二次调用函数,需要改变表格的行数和列数,改变之前我执行clear()函数时,就报错,或者不clear(),直接设置行列数为0,也报错。这个错误:0x7618C42D (KernelBase.dll) (curveui.exe 中)处有未经处理的异常: 0x00010001: 调试程序处理了异常现象。
奇怪的是我在qtcreator里,写了个小的测试用例,没用问题,不会报错。我的程序就报错,环境:VS2013,MFC
下面是我的程序,把程序简化了 这是最开始构造表格时的程序,表头之类的先忽略
ui->m_CurveDataTable1->setColumnCount(3);
ui->m_CurveDataTable1->setRowCount(2);
for (int row = 0; row < 2;row++)
{
ui->m_CurveDataTable1->setItem(row, 0, new QTableWidgetItem("123"));
ui->m_CurveDataTable1->setItem(row, 1, new QTableWidgetItem("abc"));
ui->m_CurveDataTable1->setItem(row, 2, new QTableWidgetItem("9"));
}
下面是我clear时的程序
int32 iCurveCount = m_CurveDraw[0].GetItemNum();
if (iCurveCount <= 0)
{
//ui->m_CurveDataTable1->clear();
ui->m_CurveDataTable1->setRowCount(0);
ui->m_CurveDataTable1->setColumnCount(0);
return;
}
|
|