从QTableView检索特定列的内容

时间:2018-11-15 16:57:37

标签: c++ qt

我想从包含2列的qTableView中检索特定列的内容;问题是我找不到访问它的方法;我还尝试编写以下代码(受另一个问题的启发),但不能解决问题:

for(int i = 0; i < ui->table->model->rowCount(); i++) {
       QAbstractItemModel index = ui->table->model()->data(ui->table->model()->index(0,i));
       qDebug() << index;
}

我做错了什么?

1 个答案:

答案 0 :(得分:3)

QAbstractItemModel::data()的返回值是QVariant类型。

返回的QVariant中的数据取决于roledata()的第二个参数,默认为Qt::DisplayRole),在这种情况下为{{1} }(根据Qt::ItemDataRole)。

此外,QAbstractItemModel::index()的用法也看起来是错误的:
第一个参数是行索引,第二个参数是列索引。

综合考虑,我建议进行以下修复(未经测试):

QString

访问第1 st 列或

中的数据
for (int i = 0; i < ui->table->model->rowCount(); ++i) {
  QString value = ui->table->model()->data(ui->table->model()->index(i, 0));
  qDebug() << value;
}

访问第2 nd 列中的数据。