QT QTableView获取检查项目

时间:2013-08-13 18:40:53

标签: qt qt5 qtableview qcheckbox

我有一个带有复选框的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
  }

但是这个代码不起作用,即使我查了几个项目,计数值也是零! 我看了很多关于dothat的更好方法,但没有找到...... :(

任何人都可以帮助我吗?

1 个答案:

答案 0 :(得分:2)

你身边有轻微的误解。选定的行不是一行,它包含一个选中的复选框,但是一行,突出显示。我恐怕你必须遍历所有的单元格并查询QCheckState。