不能插入已经由另一个QTableWidget拥有的项
Cannot insert an item that is already owned by another QTableWidget
我有QTableWidgetTable的问题,在我运行FindTableItems函数后,它将行/数重置为适当的大小,但不将任何数据放入单元格中。
我可以看到对象持有正确的数据。我没有收到编译错误,但调试器做出注释:
QTableWidget:不能插入已经被另一个QTableWidget拥有的项
我不明白的是我只有一个tablewidget ?那么到底是怎么回事呢?我也愿意用不同的方式来做这件事。
void MainWindow::FindTableItems(QString searchItem)
{
QList<int> matches;
QList<QList<QTableWidgetItem*> > allRows;
QList<QTableWidgetItem*> tempRow;
QList<QTableWidgetItem *> tempTable = ui->tableWidget->findItems(searchItem,Qt::MatchContains);
foreach(QTableWidgetItem *rowPtr,tempTable)
{
int currentRow = rowPtr->row();
matches.append(currentRow);
}
for(int i = 0; i < ui->tableWidget->rowCount(); ++i)
{
if(matches.contains(i))
{
QTableWidgetItem *tempCaseNameItem = new QTableWidgetItem;
QTableWidgetItem *tempInterviewNameItem = new QTableWidgetItem;
QTableWidgetItem *tempInterviewerNameItem = new QTableWidgetItem;
QTableWidgetItem *tempIntervieweeNameItem = new QTableWidgetItem;
QTableWidgetItem *tempObserverNameItem = new QTableWidgetItem;
QTableWidgetItem *tempDateItem = new QTableWidgetItem;
tempCaseNameItem->setText(ui->tableWidget->item(i,0)->text());
tempRow.append(tempCaseNameItem);
tempInterviewNameItem->setText(ui->tableWidget->item(i,1)->text());
tempRow.append(tempInterviewNameItem);
tempInterviewerNameItem->setText(ui->tableWidget->item(i,2)->text());
tempRow.append(tempInterviewerNameItem);
tempIntervieweeNameItem->setText(ui->tableWidget->item(i,3)->text());
tempRow.append(tempIntervieweeNameItem);
tempObserverNameItem->setText(ui->tableWidget->item(i,4)->text());
tempRow.append(tempObserverNameItem);
tempDateItem->setText(ui->tableWidget->item(i,5)->text());
tempRow.append(tempDateItem);
allRows.append(tempRow);
}
}
ui->tableWidget->setRowCount(0);
foreach(QList<QTableWidgetItem*> rowItems, allRows)
{
int row = ui->tableWidget->rowCount();
ui->tableWidget->insertRow(row);
foreach(QTableWidgetItem *rowItem, rowItems)
{
for(int i = 0; i < 6; ++i)
{
ui->tableWidget->setItem(row, i, rowItem);
// ui->tableWidget->item(row, i)->setTextAlignment(Qt::AlignVCenter);
}
}
}
}
我有一个坏的for循环,在底部,对不起,我们应该更注意
相关文章:
- 在 c++ 中拥有一组结构的正确方法是什么?
- 当用户在qtablewidget中输入单元格时,如何获得信号?C++
- 我应该如何表示我拥有的连续元素序列?
- 拥有映射的现代方法,该映射可以指向或引用已在堆栈上分配的不同类型的数据
- 现代 C++ 中作为类成员的非拥有指针
- 结构包含在两个头文件中,这两个文件我都不拥有
- 在函数中拥有函数原型的目的是什么?
- condition_variable、引用和线程:谁拥有锁?
- 为什么我能够为阵列分配比计算机实际拥有的内存更多的内存
- C++,Qt:仅在双击后编辑qtablewidget项目
- 有没有办法在 c++ 中拥有条件预处理器
- 为什么我不能拥有某些私有会员功能?
- QTableWidget 到多个文件
- 如何拥有受约束的运算符模板?
- 我的 c++ 程序似乎没有发现字符串和我拥有但输入使用 getline 的变量之间的比较
- CBasePin 递增对拥有过滤器的引用.循环引用?
- 谁拥有作为指向 Windows API 函数的指针传递的值?
- 是否可以获取成员函数模板参数的拥有对象?
- PyQT - 在 QTableWidget 单元格中显示垂直文本
- 拥有或在对象之间共享资源