如何在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();
或类似的东西。
我有一个 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();
或类似的东西。