如何在qt中获取QModelIndexList中的值?

How to get the values in QModelIndexList in qt?

我有一个 QTableView 启用 MultiSelection selectionMode 遵循 SelectRows 行为如下:

QSqlQueryModel model = db_manager->get_all();
ui->tableView->setModel(model);
ui->tableView->setSelectionBehavior(QAbstractItemView::SelectRows);
ui->tableView->setSelectionMode(QAbstractItemView::MultiSelection);
ui->tableView->show();

选择工作正常,然后将这些选定行的索引放入 QModelIndexList,如下所示:

selectedRowsIndexesList = ui->tableView->selectionModel()->selectedRows();

现在我需要提取这些索引指向的信息。我目前手动执行此操作如下:

qDebug() << model->index(0,0).data().toString(); 

我手动更改第一个“0”。但是我需要通过这样的 for-loop 语句自动执行该过程:

for (int i = 0; i < selectedRowsIndexesList.size(); i++){
        qDebug() << model->index(??,0).data().toString();
    }

我该怎么做?

列表中已经有了索引,为什么还要返回模型? 您可以简单地使用您存储的索引访问数据:

for (int i = 0; i < selectedRowsIndexesList.size(); i++){
        qDebug() << selectedRowsIndexesList[i].data().toString();
}

QModelIndexList 只是 documentation 的类型定义。它只是 QList<QModelIndex> 的同义词,您可以像遍历任何 QList 变量一样遍历索引。

for(int i = 0; i < mindex_list.size(); i++)
    qDebug() << mindex_list.at(i).toString();

或类似的东西。