c++ - 从 QTableView 中检索特定列的内容

标签 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;
}

我做错了什么?

最佳答案

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/

相关文章:

c++ - 如何在 C++ 中的 endl 之后从头开始打印?

c++ - 如何从 QString 中读取分号分隔的某些值?

java - JVMTI 代理之上的 GUI

c++ - QThread finished() 信号永远不会发出

c++ - 从 QPushbutton 继承的类不显示文本

c++ - Cout 没有打印出预期的结果

c++ - 是否有任何用于 Bloomier 过滤器的标准库在运行?

c++ - 数组是一种数据类型吗?

c++ - 减去与同一数组未定义行为无关的两个指针的基本原理是什么?

c++ - OpenGL "black screen"挫折