csdn_hthy 2022-03-07 11:48 采纳率: 0%
浏览 76
已结题

QT使用QTableView/QStandardItemModel构建的表格,在首次试图改变表格的显示内容时,报仪个注册的故障

问题遇到的现象和发生背景

程序在首次运行到修改QStandardItem的内容时会报问题

img

问题相关代码,请勿粘贴截图
    AI_TableView = new QTableView(this);     ///< 模拟输入
    AI_TableView->setEditTriggers(QAbstractItemView::NoEditTriggers);   ///< 表格不可编辑
    AI_TableView->horizontalHeader()->setSectionResizeMode(QHeaderView::Stretch);     ///< 固定列表的宽度,自动填充大小
    AI_Model = new QStandardItemModel(this);    ///< 设置AI采集的数据模型
    AI_Model->setColumnCount(2);    ///< 模型有2列
    AI_Model->setHeaderData(0,Qt::Horizontal,"输入电压");
    AI_Model->setHeaderData(1,Qt::Horizontal,"对应值");
    AI_Model->setRowCount(8);       ///< 模型有8行
    AI_Model->setHeaderData(0,Qt::Vertical,"WY_1");
    AI_Model->setHeaderData(1,Qt::Vertical,"WY_2");
    AI_Model->setHeaderData(2,Qt::Vertical,"WY_3");
    AI_Model->setHeaderData(3,Qt::Vertical,"T_1");
    AI_Model->setHeaderData(4,Qt::Vertical,"T_2");
    AI_Model->setHeaderData(5,Qt::Vertical,"YL_1");
    AI_Model->setHeaderData(6,Qt::Vertical,"YL_2");
    AI_Model->setHeaderData(7,Qt::Vertical,"YL_3");
    for(int i = 0; i < 8; i++)
    {
        for(int j = 0; j < 2; j++)
        {
            AI_Model->setItem(i,j,new QStandardItem("0.000"));
        }
    }
    AI_TableView->setModel(AI_Model);
//        AI_Model->setData(AI_Model->index(i,0),5.1);
//        AI_Model->setData(AI_Model->index(i,1),10.1);
        AI_Model->item(i,0)->setText("3.3");
        AI_Model->item(i,1)->setText("5.5");
//        AI_Model->item(i,0)->setAccessibleText(QString("%1").arg(data->DeviceStatus_ArmToPcData.AD7606[i]));
//        AI_Model->item(i,1)->setAccessibleText(QString("%1").arg(data->DeviceStatus_ArmToPcData.AD_Val[i]));
我的解答思路和尝试过的方法

我这里尝试了上边的3种方式,在改变时都发生了同样的错误,在程序运行一段时候后,出现过下面这种错误

img

我想要达到的结果
  • 写回答

1条回答 默认 最新

  • csdn_hthy 2022-03-07 14:09
    关注

    原因找到啦,,,

    img


    在刷新数据的信号与槽的绑定这里,在使用匿名函数上的问题,,他将所有的参数都传进去,,,造成的问题

    /// 接收到设备状态数据
        connect(m_pDataThread,&DataRxTxThread:: sig_NoTestData,m_pBottomFrame,&MyBottomFrame::refreshViewData);    ///< 修改后
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 3月15日
  • 已采纳回答 3月7日
  • 创建了问题 3月7日

悬赏问题

  • ¥15 STM32驱动继电器
  • ¥15 Windows server update services
  • ¥15 关于#c语言#的问题:我现在在做一个墨水屏设计,2.9英寸的小屏怎么换4.2英寸大屏
  • ¥15 模糊pid与pid仿真结果几乎一样
  • ¥15 java的GUI的运用
  • ¥15 Web.config连不上数据库
  • ¥15 我想付费需要AKM公司DSP开发资料及相关开发。
  • ¥15 怎么配置广告联盟瀑布流
  • ¥15 Rstudio 保存代码闪退
  • ¥20 win系统的PYQT程序生成的数据如何放入云服务器阿里云window版?