void IfcTreeWidget::setParentCheckState(QTreeWidgetItem *item) { if(!item) return; int selectedCount=0; int childCount = item->childCount(); for (int i=0;i<childCount;i++) { QTreeWidgetItem* child= item->child(i); if(child->checkState(0)==Qt::Checked) { selectedCount++; } } if(selectedCount == 0) { item->setCheckState(0,Qt::Unchecked); } else if (selectedCount == childCount) { item->setCheckState(0,Qt::Checked); } else { item->setCheckState(0,Qt::PartiallyChecked); } }