QTreeWidgetItem在使用复选框时,有时候会存在根据条件禁用复选框的情况,此时可以借助复选框三态模式中的半选状态来实现禁用状态的显示,同时需要去掉QTreeWidgetItem的Qt::ItemIsUserCheckable的标志,这样复选框就无法选中了,即实现了禁用效果。
QTreeWidgetItem *pItem = ***;
pItem->setCheckState(0, Qt::PartiallyChecked);
pItem->setFlags(pItem->flags() & ~Qt::ItemIsUserCheckable);
如果不需要禁用复选框了,设置一下复选框的状态为Qt::Unchecked,同时给QTreeWidgetItem添加Qt::ItemIsUserCheckable的标志即可。
QTreeWidgetItem *pItem = ***;
pItem->setCheckState(0, Qt::Unchecked);
pItem->setFlags(pItem->flags() | Qt::ItemIsUserCheckable);