我想从包含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;
}
我做错了什么?
答案 0 :(得分:3)
QAbstractItemModel::data()
的返回值是QVariant
类型。
返回的QVariant
中的数据取决于role
(data()
的第二个参数,默认为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 列中的数据。