如何在QTableView中获取所有值?

时间:2015-07-08 08:52:35

标签: c++ qt tableview

我知道是否要在tableview中获取所选值的索引和数据;

QModelIndexList _indexes = ui->tvDatabaseImages->selectionModel()->selectedRows();


    foreach (QModelIndex index, _indexes)
    {
        qDebug() << "TableView Index = " << QString::number(index.row());

        qDebug() << "TableView Index Value = " << index.data().toInt();
    }

但是我希望得到所有tableview索引列表而不进行选择。可能吗?如果是的话,我该怎么做?

2 个答案:

答案 0 :(得分:2)

使用QTableView后面的模型:

model=myView.model()
for ( int col = 0; col < model.columnCount(); ++col ) 
  {
  for( int row = 0; row < model.rowCount(); ++row ) 
     {
     index = model.index( row, col );
     qDebug() << index.data();
     }
  }

奇怪的是,我没有找到更直接的东西。

答案 1 :(得分:0)

如果有人想要 QModelIndexList,他们可以通过遍历模型的所有行来获取它。

QModelIndexList indices;
for (int i=0; i<model->rowCount(); i++){
    indices << model->indexFromItem(model->item(i, 0));
}

确保模型是“QStandardItemModel”类型而不是“QAbstractItemModel”。如果您的模型是 QAbstractItemModel 类型,您可以使用静态转换来转换它。

QStandardItemModel *currModel = static_cast<QStandardItemModel*>(model());