QT QTableView 获取检查项目

Posted

技术标签:

【中文标题】QT QTableView 获取检查项目【英文标题】:QT QTableView get checked items 【发布时间】:2013-08-13 18:40:52 【问题描述】:

我有一个带有复选框的 QTableView 由以下人员创建:

 QStandardItem* checkBox = new QStandardItem(true);
 checkBox->setCheckable(true);
 checkBox->setCheckState(Qt::Unchecked);
 model->setItem(row, 0, checkBox);
ui->tableView->setModel(model);

现在我想获取所有 chceked 行。正如我在许多示例代码中发现的那样,我必须编写如下内容:

 QItemSelectionModel *select = ui->tableView->selectionModel();
 QModelIndexList selectedSensosrs = select->selectedRows();
 for(int i = 0; i < selectedSensosrs.count(); i++)
 
            //do something
  

但是这段代码不起作用,即使我检查了几项,计数值也为零! 我寻找了很多更好的方法来做到这一点,但没有找到......:(

谁能帮帮我?

【问题讨论】:

【参考方案1】:

对您有一点误解。选定的行不是包含选定复选框的行,而是突出显示的行。恐怕您必须遍历所有单元格并查询 QCheckState。

【讨论】:

以上是关于QT QTableView 获取检查项目的主要内容,如果未能解决你的问题,请参考以下文章

QT - 如何从 QTableView 中的单行获取值

QT中如何获取QTableView当前行的坐标

QT QTableView 使用委托

Qt:在编辑 QTableView 项目数据时而不是在编辑完成后发出信号?

如何从命名管道中获取结构化数据并将其写入 Qt 中的 qtableview

Qt C++ 从 QTableView 中获取选定行的每个单元格的数据