查看完整版本: [-- QTableWidget在插入添加行时提示错误(内含代码) --]

QTCN开发网 -> Qt基础编程 -> QTableWidget在插入添加行时提示错误(内含代码) [打印本页] 登录 -> 注册 -> 回复主题 -> 发表主题

alvinlyb 2017-11-24 10:35

QTableWidget在插入添加行时提示错误(内含代码)

QTableWidget在插入添加行时提示错误:::QTableWidget: cannot insert an item that is already owned by another QTableWidget
  1. //添加数据
    void TableWidget::addRow(QStringList &rowList)
    {
        if(rowList.isEmpty())
            return;
        globalStatus.insert(rowList.constFirst(),0);    //记录新添加的数组名字和初始状态
        grid_data_list.append(rowList);
        //logBrowser::setLogText(QString::number(this->rowCount()));
        for(int m_row=this->rowCount();m_row<grid_data_list.size();++m_row)
        {
            this->insertRow(m_row);
            this->setItem(m_row,0,new QTableWidgetItem(relIcon(extName),grid_data_list.at(m_row).at(0)));
            for(int m_column=1;m_column<this->columnCount();++m_column)
            {
                if(m_column<this->columnCount())
                    this->setItem(m_row,m_column,new QTableWidgetItem(grid_data_list.at(m_row).at(m_column)));
                    //logBrowser::setLogText(QString("%1:%2").arg(m_row).arg(m_column));
            }
        }
    }
这个是什么问题?


alvinlyb 2017-11-27 21:38
顶一下。有人帮忙解答一下么?

小韩老师 2017-11-28 09:26
感觉是你增加的逻辑有点问题吧,你增加了m行,原来可能表中已经n行了怎么办?你增加行的时候也处理了列?count是真的行数,取列值的时候是从0开始的,最取值是m-1

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

是这样的啊。第在0行里添加了。所以才在第1行里开始填充的。


查看完整版本: [-- QTableWidget在插入添加行时提示错误(内含代码) --] [-- top --]



Powered by phpwind v8.7 Code ©2003-2011 phpwind
Gzip disabled