QT开发中文网

QStringList ids, addrs; QItemSelectionModel *selections = ui->tableView->selectionModel(); QModelIndexList selected = selections->selectedIndexes(); foreach (QModelIndex index, selected) { int column = index.col...

要遍历所有行号,并删除具有相同名称的项,您可以进行如下修改:

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助手提供,问题来源于学员提问

本站部分文章来源于网络,版权归原作者所有,如有侵权请联系站长删除。
转载请注明出处:http://qt.0voice.com/?id=12149

分享:
扫描分享到社交APP
上一篇
下一篇
发表列表
游客 游客
此处应有掌声~
评论列表

还没有评论,快来说点什么吧~

联系我们

在线咨询: 点击这里给我发消息

微信号:3007537140

上班时间: 10:30-22:30

关注我们
x

注册

已经有帐号?