本页内容

QTreeWidgetItemIterator Class

QTreeWidgetItemIterator 类提供了一种遍历QTreeWidget 实例中各项的方法。更多内容...

头文件: #include <QTreeWidgetItemIterator>
CMake: find_package(Qt6 REQUIRED COMPONENTS Widgets)
target_link_libraries(mytarget PRIVATE Qt6::Widgets)
qmake: QT += widgets

公共类型

enum IteratorFlag { All, Hidden, NotHidden, Selected, Unselected, …, UserFlag }
flags IteratorFlags

公共函数

QTreeWidgetItemIterator(QTreeWidget *widget, QTreeWidgetItemIterator::IteratorFlags flags = All)
QTreeWidgetItemIterator(QTreeWidgetItem *item, QTreeWidgetItemIterator::IteratorFlags flags = All)
QTreeWidgetItemIterator(const QTreeWidgetItemIterator &it)
~QTreeWidgetItemIterator()
QTreeWidgetItem *operator*() const
QTreeWidgetItemIterator &operator++()
const QTreeWidgetItemIterator operator++(int)
QTreeWidgetItemIterator &operator+=(int n)
QTreeWidgetItemIterator &operator--()
const QTreeWidgetItemIterator operator--(int)
QTreeWidgetItemIterator &operator-=(int n)
QTreeWidgetItemIterator &operator=(const QTreeWidgetItemIterator &it)

详细说明

迭代器将按照先广度优先遍历的顺序遍历项目,因此会在访问子节点之前先访问父节点。

例如,以下代码示例遍历树中的每个项目,将第一列中的文本与用户指定的搜索字符串进行比对:

QTreeWidgetItemIterator it(treeWidget);
while (*it) {
    if ((*it)->text(0) == itemText)
        (*it)->setSelected(true);
    ++it;
}

还可以通过向 QTreeWidgetItemIterator 的构造函数传递特定的flags ,来过滤掉某些类型的节点。

另请参阅 QTreeWidget 、模型/视图编程以及QTreeWidgetItem 。

成员类型文档

enum QTreeWidgetItemIterator::IteratorFlag
flags QTreeWidgetItemIterator::IteratorFlags

这些标志可以传递给QTreeWidgetItemIterator 构造函数(如果使用多个标志,则通过按“或”运算将其组合),这样迭代器只会遍历符合给定标志的项。

常量常量
QTreeWidgetItemIterator::All0x00000000
QTreeWidgetItemIterator::Hidden0x00000001
QTreeWidgetItemIterator::NotHidden0x00000002
QTreeWidgetItemIterator::Selected0x00000004
QTreeWidgetItemIterator::Unselected0x00000008
QTreeWidgetItemIterator::Selectable0x00000010
QTreeWidgetItemIterator::NotSelectable0x00000020
QTreeWidgetItemIterator::DragEnabled0x00000040
QTreeWidgetItemIterator::DragDisabled0x00000080
QTreeWidgetItemIterator::DropEnabled0x00000100
QTreeWidgetItemIterator::DropDisabled0x00000200
QTreeWidgetItemIterator::HasChildren0x00000400
QTreeWidgetItemIterator::NoChildren0x00000800
QTreeWidgetItemIterator::Checked0x00001000
QTreeWidgetItemIterator::NotChecked0x00002000
QTreeWidgetItemIterator::Enabled0x00004000
QTreeWidgetItemIterator::Disabled0x00008000
QTreeWidgetItemIterator::Editable0x00010000
QTreeWidgetItemIterator::NotEditable0x00020000
QTreeWidgetItemIterator::UserFlag0x01000000

IteratorFlags 类型是QFlags<IteratorFlag> 的 typedef。它存储了 IteratorFlag 值的“或”组合。

成员函数文档

[explicit] QTreeWidgetItemIterator::QTreeWidgetItemIterator(QTreeWidget *widget, QTreeWidgetItemIterator::IteratorFlags flags = All)

为给定的widget 构建一个迭代器,该迭代器使用指定的flags 来确定迭代过程中找到哪些项目。该迭代器被设置为指向小部件中包含的第一个顶级项目,或者如果该顶级项目与标志不匹配,则指向下一个匹配的项目。

另请参阅 QTreeWidgetItemIterator::IteratorFlag 。

[explicit] QTreeWidgetItemIterator::QTreeWidgetItemIterator(QTreeWidgetItem *item, QTreeWidgetItemIterator::IteratorFlags flags = All)

为给定的item 构建一个迭代器,该迭代器使用指定的flags 来确定迭代过程中找到的哪些项目符合条件。该迭代器被设置为指向item ,或者如果item 与标志不匹配,则指向下一个匹配的项目。

另请参阅 QTreeWidgetItemIterator::IteratorFlag 。

QTreeWidgetItemIterator::QTreeWidgetItemIterator(const QTreeWidgetItemIterator &it)

为与it 相同的QTreeWidget 构建一个迭代器。将当前迭代器项设置为指向it 的当前项。

[noexcept] QTreeWidgetItemIterator::~QTreeWidgetItemIterator()

销毁该迭代器。

QTreeWidgetItem *QTreeWidgetItemIterator::operator*() const

解引用运算符。返回指向当前项的指针。

QTreeWidgetItemIterator &QTreeWidgetItemIterator::operator++()

前缀++ 运算符(++it )将迭代器向前移动到下一个匹配项,并返回该迭代器的引用。如果当前项是最后一个匹配项,则将当前指针设置为nullptr 。

const QTreeWidgetItemIterator QTreeWidgetItemIterator::operator++(int)

后缀 ++ 运算符 (it++) 将迭代器向前移动到下一个匹配的项目,并返回指向先前当前项目的迭代器。

QTreeWidgetItemIterator &QTreeWidgetItemIterator::operator+=(int n)

使迭代器向前移动n 个匹配项。(如果n为负数,则迭代器向后移动。)

如果当前项目已超过最后一个项目,则将当前项目指针设置为nullptr 。返回生成的迭代器。

QTreeWidgetItemIterator &QTreeWidgetItemIterator::operator--()

前缀运算符-- (--it )将迭代器向前移动到前一个匹配项,并返回该迭代器的引用。如果当前项是第一个匹配项,则将当前指针设置为nullptr 。

const QTreeWidgetItemIterator QTreeWidgetItemIterator::operator--(int)

后缀运算符 –(it–)将前面的匹配项设为当前项,并返回指向先前当前项的迭代器。

QTreeWidgetItemIterator &QTreeWidgetItemIterator::operator-=(int n)

使迭代器向后移动n 个匹配项。(如果n为负数,则迭代器向前移动。)

如果当前项位于最后一项之前,则将当前项指针设置为nullptr 。返回结果迭代器。

QTreeWidgetItemIterator &QTreeWidgetItemIterator::operator=(const QTreeWidgetItemIterator &it)

赋值。复制 `it `,并返回其迭代器的引用。

© 2026 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.