我想从包含 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;
}
我做错了什么?
最佳答案
QAbstractItemModel::data()
的返回值类型为QVariant
。
返回的QVariant
中的数据取决于role
(data()
的第二个参数,默认为Qt::DisplayRole
),即本例中的 QString
(根据 Qt::ItemDataRole
)。
此外,QAbstractItemModel::index()
的用法看起来也不对:
第一个参数是行索引,第二个参数是列索引。
总而言之,我建议进行以下修复(未经测试):
for (int i = 0; i < ui->table->model->rowCount(); ++i) {
QString value = ui->table->model()->data(ui->table->model()->index(i, 0));
qDebug() << value;
}
访问第一st列的数据或
for (int i = 0; i < ui->table->model->rowCount(); ++i) {
QString value = ui->table->model()->data(ui->table->model()->index(i, 1));
qDebug() << value;
}
访问第二nd列的数据。
关于c++ - 从 QTableView 中检索特定列的内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53324428/