QTreeview添加复选框后,如何获取复选框状态变化
时间: 2024-03-20 14:41:19 浏览: 23
当QTreeView添加复选框后,可以通过以下步骤获取复选框状态变化:
1. 在QTreeView中添加复选框,可以使用QStandardItemModel模型,为每个项添加一个QStandardItem对象并设置Qt::ItemIsUserCheckable标志,这样就可以在项上显示复选框。
```
QStandardItemModel *model = new QStandardItemModel();
QStandardItem *item = new QStandardItem("Item1");
item->setCheckable(true);
item->setCheckState(Qt::Unchecked);
model->appendRow(item);
treeView->setModel(model);
```
2. 监听QStandardItem的`checkStateChange`信号,当复选框状态变化时,该信号会被触发,并传递QStandardItem对象和新的状态。
```
connect(model, &QStandardItemModel::itemChanged, [=](QStandardItem *item) {
if (item->checkState() == Qt::Checked) {
qDebug() << "Item checked";
}
else {
qDebug() << "Item unchecked";
}
});
```
这样,当用户在QTreeView中勾选或取消勾选复选框时,就可以通过监听`checkStateChange`信号获取复选框的状态变化了。