2013-04-07 60 views

回答

1

簡單。沒有編譯,但希望你明白。

for(int topnum = 0; topnum < treeWidget->topLevelItemCount(); ++topnum) 
{ 
    if(Qt::Checked == treeWidget->topLevelItem(topnum)->checkState(0)) //assume one column 
    { 
     delete treeWidget->takeTopLevelItem(topnum); 
     --topnum;      //decrement because you just removed it 
    } else 
    { 
     QTreeWidgetItem* topitem = treeWidget->topLevelItem(topnum); 
     for(int childnum = 0; childnum < topitem->childCount(); ++childnum) 
     { 
      if(Qt::Checked == topitem->child(childnum)->checkState()) 
      { 
       delete topitem->takeChild(childnum); 
       --childnum; 
      } 
     } 
    } 
} 

不知道我明白如果頂級項目被選中或如果孩子被選中,所以我檢查(哈哈)。