QTreeWidget 删除节点 和 遍历节点
一、 删除节点以及子节点
在删除时, currentItemChanged 一定要做判断, 不然删除最后一个会报错。
void MainWindow::removeItem(QTreeWidgetItem *item)
{int count = item->childCount();if(count == 0)//没有子节点,直接删除{delete item;return;}for(int i=0; ichild(0);//删除子节点removeItem(childItem);}delete item;//最后将自己删除
}void MainWindow::on_treeWidget_currentItemChanged(QTreeWidgetItem *current, QTreeWidgetItem *previous)
{Q_UNUSED(previous);if(current == NULL)return;
}
二、遍历节点
void MainWindow::on_toolButton_4_clicked()
{int count = ui->treeWidget->topLevelItemCount(); // 获取第一级节点个数for(int i = 0; i < count; i++){QTreeWidgetItem* item = ui->treeWidget->topLevelItem(i);traverseEachNode(item);}
}void MainWindow::traverseEachNode(QTreeWidgetItem *item)
{int count = item->childCount();if (count == 0){qDebug()<< "末梢" << item->data(0,Qt::UserRole);return;}else{for (int i = 0; i < count; i++){QTreeWidgetItem * childItem = item->child(i);qDebug()<< "子节点" << childItem->data(0,Qt::UserRole);traverseEachNode(childItem);}}
}
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
