QTablewidget中在已有的item的格子里再setitem(x,y,new QTablewidgetItem)之前那个item是自动释放了 还是怎么处理的
1条回答 默认 最新
你知我知皆知 2024-07-24 11:56关注以下回答参考 皆我百晓生、券券喵儿 等免费微信小程序相关内容作答,并由本人整理回复。
在Qt中,当你尝试在已经存在的
QTableWidgetItem对象上添加一个新的QTableWidgetItem时,新的元素会覆盖原有的内容。因此,在使用完一个QTableWidgetItem后,它会被自动删除。如果你想要保留这个元素,你可以将它从父容器中移除(通过调用它的
remove()方法),然后创建一个新的QTableWidgetItem并将它添加到父容器中。这是一个简单的例子:
// 假设我们有一个QTableWidget和一些QTableWidgetItem QTableWidget *table = new QTableWidget; QTableWidgetItem *item1 = new QTableWidgetItem("Hello"); QTableWidgetItem *item2 = new QTableWidgetItem("World"); // 将item1和item2添加到table中 table->insertRow(0); table->setItem(0, 0, item1); table->setItem(0, 1, item2); // 现在我们要在一个新位置添加一个QTableWidgetItem QTableWidgetItem *newItem = new QTableWidgetItem("New Text"); // 移除旧的item1和item2 item1->remove(); item2->remove(); // 创建一个新的item,并将其添加到table中 table->insertRow(0); table->setItem(0, 0, newItem);在这个例子中,
item1和item2被移除了,然后我们在QTableWidgetItem *newItem的基础上创建了一个新的QTableWidgetItem并添加到了table中。解决 无用评论 打赏 举报