找回密码
 立即注册
收起左侧

求教QTabelWidget奇怪的问题!!!!

3
回复
6823
查看
[复制链接]
累计签到:3 天
连续签到:1 天
来源: 2015-12-28 16:37:51 显示全部楼层 |阅读模式
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;
        }
               
         

回复

使用道具 举报

累计签到:595 天
连续签到:1 天
2016-1-6 16:37:44 显示全部楼层
楼主问题解决了么,感觉像是环境的问题。
回复

使用道具 举报

累计签到:12 天
连续签到:1 天
2016-1-27 23:08:28 显示全部楼层
也有可能是int32 iCurveCount = m_CurveDraw[0].GetItemNum(); 出问题
你可以单步调试,看是哪一行出问题
回复

使用道具 举报

累计签到:3 天
连续签到:1 天
2016-2-2 16:38:18 显示全部楼层
shencj1234 发表于 2016-1-27 23:08
也有可能是int32 iCurveCount = m_CurveDraw[0].GetItemNum(); 出问题
你可以单步调试,看是哪一行出问题 ...

跟了不是这行的问题,就是走到ui->m_CurveDataTable1->setRowCount(0)这时报错。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

公告
可以关注我们的微信公众号yafeilinux_friends获取最新动态,或者加入QQ会员群进行交流:190741849、186601429(已满) 我知道了