【发布时间】:2023-03-29 15:35:01
【问题描述】:
我想从 QTableWidget 中删除多行(三列),这是我的代码:
void on_del_clicked()
{
QList<QTableWidgetItem *> items = ui->tableWidget->selectedItems();
for(int i = 0;i<items.length(); i=i+3)
{
int row = items[i]->row();
if(row>=0)
{
ui->tableWidget->removeRow(row);
ui->tableWidget->setCurrentIndex(ui->tableWidget->model()->index(row,0));
}
}
}
如果我使用 Ctrl 选择多行,它工作正常,但如果我通过拖动鼠标选择多个条目,它会崩溃。仅当所选项目是 3 的倍数并且通过拖动鼠标选择行时才会崩溃。我使用 Qt 4.8.4,我的操作系统是 Ubuntu 12.10 64 位
【问题讨论】:
-
可能是因为您在同一行中选择了多个项目,然后当您删除行并尝试访问该行中的下一个元素(实际上不存在)时,您遇到了内存泄漏。
-
@Blood ~> 我在回答中引用了你的评论:D 谢谢你。
-
@adnan kamili - 不客气 :)
-
@Blood ~> 是我:|