要遍历所有行号,并删除具有相同名称的项,您可以进行如下修改:
QStringList ids, addrs;
QItemSelectionModel *selections = ui->tableView->selectionModel();
QModelIndexList selected = selections->selectedIndexes();
foreach (QModelIndex index, selected) {
int row = index.row(); // 获取行号
QString name = model->data(model->index(row, 0)).toString(); // 获取对应行的 name 值
if (!name.isEmpty()) { // 判断 name 是否为空
ids << name; // 将非空的 name 添加到 ids 列表中
}
}
// 删除具有相同名称的项(示例:假设名称列为第0列)
for (int i = model->rowCount() - 1; i >= 0; --i) {
QString name = model->data(model->index(i, 0)).toString(); // 获取每一行的 name 值
if (ids.contains(name)) { // 如果该 name 值在 ids 列表中存在,则删除该行
model->removeRow(i);
}
}
这段代码会遍历选中的单元格,获取其所在行号和对应的 name 值。然后,在模型中搜索具有相同名称的项,并逐一删除它们。请注意,此处假设名称位于第0列。如果名称位于其他列,请将索引值调整为相应的列号。
此外,请确保 model
是一个有效的数据模型对象,并已正确设置给表格视图 ui->tableView
使用。
内容由零声教学AI助手提供,问题来源于学员提问