• 3883阅读
  • 3回复

[提问]QTableWidget在插入添加行时提示错误(内含代码) [复制链接]

上一主题 下一主题
离线alvinlyb
 

只看楼主 倒序阅读 楼主  发表于: 2017-11-24
QTableWidget在插入添加行时提示错误:::QTableWidget: cannot insert an item that is already owned by another QTableWidget
  1. //添加数据
  2. void TableWidget::addRow(QStringList &rowList)
  3. {
  4.     if(rowList.isEmpty())
  5.         return;
  6.     globalStatus.insert(rowList.constFirst(),0);    //记录新添加的数组名字和初始状态
  7.     grid_data_list.append(rowList);
  8.     //logBrowser::setLogText(QString::number(this->rowCount()));
  9.     for(int m_row=this->rowCount();m_row<grid_data_list.size();++m_row)
  10.     {
  11.         this->insertRow(m_row);
  12.         this->setItem(m_row,0,new QTableWidgetItem(relIcon(extName),grid_data_list.at(m_row).at(0)));
  13.         for(int m_column=1;m_column<this->columnCount();++m_column)
  14.         {
  15.             if(m_column<this->columnCount())
  16.                 this->setItem(m_row,m_column,new QTableWidgetItem(grid_data_list.at(m_row).at(m_column)));
  17.                 //logBrowser::setLogText(QString("%1:%2").arg(m_row).arg(m_column));
  18.         }
  19.     }
  20. }
这个是什么问题

离线alvinlyb

只看该作者 1楼 发表于: 2017-11-27
顶一下。有人帮忙解答一下么?
离线小韩老师

只看该作者 2楼 发表于: 2017-11-28
感觉是你增加的逻辑有点问题吧,你增加了m行,原来可能表中已经n行了怎么办?你增加行的时候也处理了列?count是真的行数,取列值的时候是从0开始的,最取值是m-1
离线alvinlyb

只看该作者 3楼 发表于: 2017-12-01
回 小韩老师 的帖子
小韩老师:感觉是你增加的逻辑有点问题吧,你增加了m行,原来可能表中已经n行了怎么办?你增加行的时候也处理了列?count是真的行数,取列值的时候是从0开始的,最取值是m-1 (2017-11-28 09:26) 

是这样的啊。第在0行里添加了。所以才在第1行里开始填充的。
快速回复
限100 字节
 
上一个 下一个