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 项目数据时而不是在编辑完成后发出信号?