QTreeWidgetItemIterator 带有 "subtree"
QTreeWidgetItemIterator with a "subtree"
我正在尝试迭代 QTreeWidget 的一部分。所以我使用 QTreeWidgetItemIterator 和带有 QTreeWidgetItem 的构造函数。
但是迭代器不仅访问项目及其子项,而且 "ascend" 并在给定项目之后继续。
QTreeWidgetItem *root = topLevelItem(0);
QTreeWidgetItemIterator it(root);
while (*it)
{
qDebug() << (*it)->text(0);
++it;
}
所以我获得了这个而不是只有 1x 个节点。
node1
node11
node12
node2
node21
正常吗?是否可以使用此迭代器在节点上进行迭代?
谢谢。
对QTreeWidget不是很熟悉,但是我重新运行了类似的东西,而且他们的迭代器似乎是从起始节点迭代到树的末尾。在这种情况下,这应该可以完成工作(虽然有点难看):
QTreeWidgetItem *root = topLevelItem(0);
QTreeWidgetItemIterator it(root);
int nodesCount = 1; //for root, each visited child will update the count
for (int i = 0; i < nodesCount; ++i)
{
qDebug() << (*it)->text(0);
nodesCount += (*it)->childCount; //update the count for this node children
++it;
}
我正在尝试迭代 QTreeWidget 的一部分。所以我使用 QTreeWidgetItemIterator 和带有 QTreeWidgetItem 的构造函数。 但是迭代器不仅访问项目及其子项,而且 "ascend" 并在给定项目之后继续。
QTreeWidgetItem *root = topLevelItem(0);
QTreeWidgetItemIterator it(root);
while (*it)
{
qDebug() << (*it)->text(0);
++it;
}
所以我获得了这个而不是只有 1x 个节点。
node1
node11
node12
node2
node21
正常吗?是否可以使用此迭代器在节点上进行迭代?
谢谢。
对QTreeWidget不是很熟悉,但是我重新运行了类似的东西,而且他们的迭代器似乎是从起始节点迭代到树的末尾。在这种情况下,这应该可以完成工作(虽然有点难看):
QTreeWidgetItem *root = topLevelItem(0);
QTreeWidgetItemIterator it(root);
int nodesCount = 1; //for root, each visited child will update the count
for (int i = 0; i < nodesCount; ++i)
{
qDebug() << (*it)->text(0);
nodesCount += (*it)->childCount; //update the count for this node children
++it;
}