本页内容

QTreeWidgetItem Class

QTreeWidgetItem 类提供了一个可用于与QTreeWidget 便利类配合使用的项目。更多内容...

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

公共类型

enum ChildIndicatorPolicy { ShowIndicator, DontShowIndicator, DontShowIndicatorWhenChildless }
enum ItemType { Type, UserType }

公共函数

QTreeWidgetItem(int type = Type)
QTreeWidgetItem(QTreeWidget *parent, int type = Type)
QTreeWidgetItem(QTreeWidgetItem *parent, int type = Type)
QTreeWidgetItem(const QStringList &strings, int type = Type)
QTreeWidgetItem(QTreeWidget *parent, QTreeWidgetItem *preceding, int type = Type)
QTreeWidgetItem(QTreeWidget *parent, const QStringList &strings, int type = Type)
QTreeWidgetItem(QTreeWidgetItem *parent, QTreeWidgetItem *preceding, int type = Type)
QTreeWidgetItem(QTreeWidgetItem *parent, const QStringList &strings, int type = Type)
QTreeWidgetItem(const QTreeWidgetItem &other)
virtual ~QTreeWidgetItem()
void addChild(QTreeWidgetItem *child)
void addChildren(const QList<QTreeWidgetItem *> &children)
QBrush background(int column) const
Qt::CheckState checkState(int column) const
QTreeWidgetItem *child(int index) const
int childCount() const
QTreeWidgetItem::ChildIndicatorPolicy childIndicatorPolicy() const
virtual QTreeWidgetItem *clone() const
int columnCount() const
virtual QVariant data(int column, int role) const
Qt::ItemFlags flags() const
QFont font(int column) const
QBrush foreground(int column) const
QIcon icon(int column) const
int indexOfChild(QTreeWidgetItem *child) const
void insertChild(int index, QTreeWidgetItem *child)
void insertChildren(int index, const QList<QTreeWidgetItem *> &children)
bool isDisabled() const
bool isExpanded() const
bool isFirstColumnSpanned() const
bool isHidden() const
bool isSelected() const
QTreeWidgetItem *parent() const
virtual void read(QDataStream &in)
void removeChild(QTreeWidgetItem *child)
void setBackground(int column, const QBrush &brush)
void setCheckState(int column, Qt::CheckState state)
void setChildIndicatorPolicy(QTreeWidgetItem::ChildIndicatorPolicy policy)
virtual void setData(int column, int role, const QVariant &value)
void setDisabled(bool disabled)
void setExpanded(bool expand)
void setFirstColumnSpanned(bool span)
void setFlags(Qt::ItemFlags flags)
void setFont(int column, const QFont &font)
void setForeground(int column, const QBrush &brush)
void setHidden(bool hide)
void setIcon(int column, const QIcon &icon)
void setSelected(bool select)
void setSizeHint(int column, const QSize &size)
void setStatusTip(int column, const QString &statusTip)
void setText(int column, const QString &text)
(since 6.4) void setTextAlignment(int column, Qt::Alignment alignment)
void setToolTip(int column, const QString &toolTip)
void setWhatsThis(int column, const QString &whatsThis)
QSize sizeHint(int column) const
void sortChildren(int column, Qt::SortOrder order)
QString statusTip(int column) const
QTreeWidgetItem *takeChild(int index)
QList<QTreeWidgetItem *> takeChildren()
QString text(int column) const
int textAlignment(int column) const
QString toolTip(int column) const
QTreeWidget *treeWidget() const
int type() const
QString whatsThis(int column) const
virtual void write(QDataStream &out) const
virtual bool operator<(const QTreeWidgetItem &other) const
QTreeWidgetItem &operator=(const QTreeWidgetItem &other)

受保护函数

QDataStream &operator<<(QDataStream &out, const QTreeWidgetItem &item)
QDataStream &operator>>(QDataStream &in, QTreeWidgetItem &item)

详细说明

树控件项用于存储树控件中的信息行。每行通常包含多列数据,每列均可包含一个文本标签和一个图标。

QTreeWidgetItem 类是一个便利类,用于替代 Qt 3 中的 QListViewItem 类。它提供了一个可与QTreeWidget 类配合使用的项目。

项通常在构造时指定一个父项,该父项可以是QTreeWidget (用于顶级项)或 QTreeWidgetItem(用于树结构中较低级别的项)。例如,以下代码构造了一个代表世界各城市的顶级项,并将其子项“奥斯陆”添加为该项的子项:

QTreeWidgetItem *cities = new QTreeWidgetItem(treeWidget);
cities->setText(0, tr("Cities"));
QTreeWidgetItem *osloItem = new QTreeWidgetItem(cities);
osloItem->setText(0, tr("Oslo"));
osloItem->setText(1, tr("Yes"));

通过在创建时指定其后接的项目,可以按特定顺序添加项目:

QTreeWidgetItem *planets = new QTreeWidgetItem(treeWidget, cities);
planets->setText(0, tr("Planets"));

项目中的每一列都可以拥有自己的背景画笔,该画笔通过setBackground()函数设置。当前的背景画笔可通过background()获取。每列的文本标签都可以使用其专属的字体和画笔进行渲染。这些属性通过setFont()和setForeground()函数进行指定,并通过font()和foreground()函数读取。

顶级项与树中较低级别项的主要区别在于,顶级项没有parent()属性。该信息可用于区分不同项,在向树中插入或从树中移除项时了解这一点非常有用。 可以通过takeChild()移除节点的子节点,并通过insertChild()函数将子节点插入到子节点列表的指定索引位置。

默认情况下,项目处于启用状态,可选中、可勾选,并可作为拖放操作的源对象。可通过调用setFlags()并传入相应值来更改每个项目的标志(参见Qt::ItemFlags )。可通过setCheckState()函数对可勾选项目进行勾选或取消勾选。相应的checkState()函数用于指示该项目当前是否被勾选。

子类化

在继承 QTreeWidgetItem 以提供自定义项时,可以为其定义新类型,以便将其与标准项区分开来。需要此功能的子类的构造函数必须调用基类的构造函数,并将新类型值设置为不小于UserType 。

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

成员类型文档

enum QTreeWidgetItem::ChildIndicatorPolicy

常数值描述
QTreeWidgetItem::ShowIndicator0即使该项目没有子项,其展开和折叠控件也会显示。
QTreeWidgetItem::DontShowIndicator1即使存在子项,展开和折叠控件也永远不会显示。如果节点被强制展开,用户将无法展开或折叠该项。
QTreeWidgetItem::DontShowIndicatorWhenChildless2如果该项目包含子项,则会显示展开和折叠控件。

enum QTreeWidgetItem::ItemType

此枚举描述了用于描述树控件项的类型。

常量值描述
QTreeWidgetItem::Type0树控件项的默认类型。
QTreeWidgetItem::UserType1000自定义类型的最小值。小于 UserType 的值由 Qt 保留。

您可以在QTreeWidgetItem 的子类中定义新的用户类型,以确保自定义项得到特殊处理;例如,在对项进行排序时。

另请参阅 type()。

成员函数文档

[explicit] QTreeWidgetItem::QTreeWidgetItem(int type = Type)

根据指定的type 构建一个树控件项。该项必须插入到树控件中。

另请参阅 type()。

[explicit] QTreeWidgetItem::QTreeWidgetItem(QTreeWidget *parent, int type = Type)

根据指定的type 创建一个树控件项,并将其追加到给定的parent 中的项列表中。

另请参阅 type()。

[explicit] QTreeWidgetItem::QTreeWidgetItem(QTreeWidgetItem *parent, int type = Type)

构建一个树控件项,并将其追加到指定的parent 中。

另请参阅 type()。

[explicit] QTreeWidgetItem::QTreeWidgetItem(const QStringList &strings, int type = Type)

根据指定的type 创建一个树控件项。该项必须插入到树控件中。给定的strings 列表将被设置为该项中每一列的项文本。

另请参阅 type()。

QTreeWidgetItem::QTreeWidgetItem(QTreeWidget *parent, QTreeWidgetItem *preceding, int type = Type)

根据指定的type 创建一个树控件项,并将其插入到给定的parent 中,位于preceding 项之后。

另请参阅 type()。

QTreeWidgetItem::QTreeWidgetItem(QTreeWidget *parent, const QStringList &strings, int type = Type)

根据指定的type 创建一个树形控件项,并将其追加到给定的parent 中的项列表中。给定的strings 列表将被设置为该项中每一列的项文本。

另请参阅 type()。

QTreeWidgetItem::QTreeWidgetItem(QTreeWidgetItem *parent, QTreeWidgetItem *preceding, int type = Type)

创建一个指定type 的树控件项,并将该项插入到parent 中,位于preceding 子项之后。

另请参阅 type()。

QTreeWidgetItem::QTreeWidgetItem(QTreeWidgetItem *parent, const QStringList &strings, int type = Type)

创建一个树形控件项,并将其追加到给定的parent 中。给定的strings 列表将被设置为该项中各列的项文本。

另请参阅 type()。

QTreeWidgetItem::QTreeWidgetItem(const QTreeWidgetItem &other)

构建other 的副本。请注意,type()和treeWidget()不会被复制。

在重写clone() 时,此函数非常有用。

另请参阅 data() 和flags()。

[virtual noexcept] QTreeWidgetItem::~QTreeWidgetItem()

销毁此树形控件项。

该项将从其已被添加到的QTreeWidget中移除。因此,随时删除该项都是安全的。

void QTreeWidgetItem::addChild(QTreeWidgetItem *child)

将child 项追加到子节点列表中。

另请参阅 insertChild() 和takeChild()。

void QTreeWidgetItem::addChildren(const QList<QTreeWidgetItem *> &children)

将给定的children 列表追加到该项的末尾。

另请参阅 insertChildren() 和takeChildren()。

QBrush QTreeWidgetItem::background(int column) const

返回用于渲染指定column 背景的画笔。

另请参阅 setBackground() 和foreground()。

Qt::CheckState QTreeWidgetItem::checkState(int column) const

返回给定column 中标签的选中状态。

另请参阅 setCheckState() 和Qt::CheckState 。

QTreeWidgetItem *QTreeWidgetItem::child(int index) const

返回列表中位于给定index 处的子项。

另请参阅 parent()。

int QTreeWidgetItem::childCount() const

返回子项的数量。

QTreeWidgetItem::ChildIndicatorPolicy QTreeWidgetItem::childIndicatorPolicy() const

返回项目指示器策略。该策略决定何时显示树分支的展开/折叠指示器。

另请参阅 setChildIndicatorPolicy()。

[virtual] QTreeWidgetItem *QTreeWidgetItem::clone() const

对该项及其子项创建深度复制。

int QTreeWidgetItem::columnCount() const

返回该项目的列数。

[virtual] QVariant QTreeWidgetItem::data(int column, int role) const

返回该项的column 和role 的值。

另请参阅 setData()。

[protected] void QTreeWidgetItem::emitDataChanged()

使与该项关联的模型为此项发出dataChanged()信号。

通常情况下,只有当您继承了QTreeWidgetItem 类,并重写了data()和/或setData()方法时,才需要调用此函数。

另请参阅 setData()。

Qt::ItemFlags QTreeWidgetItem::flags() const

返回用于描述该项目的标志。这些标志决定了该项目是否可以被勾选、编辑和选中。

标志的默认值为Qt::ItemIsSelectable |Qt::ItemIsUserCheckable |Qt::ItemIsEnabled |Qt::ItemIsDragEnabled |Qt::ItemIsDropEnabled 。

另请参阅 setFlags()。

QFont QTreeWidgetItem::font(int column) const

返回用于渲染指定column 中文本的字体。

另请参阅 setFont()。

QBrush QTreeWidgetItem::foreground(int column) const

返回用于渲染指定column 的前景(例如文本)的画笔。设置一个通过默认构造函数创建的画笔,将使视图使用样式中的默认颜色。

另请参阅 setForeground() 和background()。

QIcon QTreeWidgetItem::icon(int column) const

返回在指定的column 中显示的图标。

另请参阅 setIcon() 和iconSize 。

int QTreeWidgetItem::indexOfChild(QTreeWidgetItem *child) const

返回给定child 在该项子节点列表中的索引。

void QTreeWidgetItem::insertChild(int index, QTreeWidgetItem *child)

将child 项插入到子节点列表中的index 位置。

如果该子节点已被插入到其他位置,则不会再次插入。

void QTreeWidgetItem::insertChildren(int index, const QList<QTreeWidgetItem *> &children)

将给定的children 列表插入到index 中项的子节点列表中。

已经插入到其他位置的子节点将不会被再次插入。

bool QTreeWidgetItem::isDisabled() const

如果该项处于禁用状态,则返回true ;否则返回false 。

另请参阅 setFlags()。

bool QTreeWidgetItem::isExpanded() const

如果该项目已展开,则返回 `true `;否则返回 `false`。

另请参阅 setExpanded()。

bool QTreeWidgetItem::isFirstColumnSpanned() const

如果该项横跨一行中的所有列,则返回true ;否则返回false 。

另请参阅 setFirstColumnSpanned()。

bool QTreeWidgetItem::isHidden() const

如果该项目处于隐藏状态,则返回true ;否则返回false 。

另请参阅 setHidden()。

bool QTreeWidgetItem::isSelected() const

如果该项目被选中,则返回true ;否则返回false 。

另请参阅 setSelected()。

QTreeWidgetItem *QTreeWidgetItem::parent() const

返回该项的父项。

另请参阅 child()。

[virtual] void QTreeWidgetItem::read(QDataStream &in)

从流in 中读取项目。此操作仅将数据读取到单个项目中。

另请参阅 write()。

void QTreeWidgetItem::removeChild(QTreeWidgetItem *child)

删除由child 指定的项目。被删除的项目不会被彻底清除。

void QTreeWidgetItem::setBackground(int column, const QBrush &brush)

将给定column 中的标签的背景画笔设置为指定的brush 。设置一个通过默认构造函数构造的画笔将使视图使用样式中的默认颜色。

注意:如果 在同一小部件上同时使用了Qt 样式表和setBackground(),当设置发生冲突时,样式表将具有更高优先级。

另请参阅 background() 和setForeground()。

void QTreeWidgetItem::setCheckState(int column, Qt::CheckState state)

将指定column 检查状态下的项目设置为state 。

另请参阅 checkState()。

void QTreeWidgetItem::setChildIndicatorPolicy(QTreeWidgetItem::ChildIndicatorPolicy policy)

设置项目指示器policy 。该策略决定何时显示树枝展开/折叠指示器。默认值为DontShowIndicatorWhenChildless 。

另请参阅 childIndicatorPolicy()。

[virtual] void QTreeWidgetItem::setData(int column, int role, const QVariant &value)

将该项的column 和role 的值设置为给定的value 。

role 描述了由value 指定的数据类型,并由Qt::ItemDataRole 枚举定义。

注意: 默认实现将 `Qt::EditRole ` 和 `Qt::DisplayRole ` 视为指向同一数据。

另请参阅 data()。

void QTreeWidgetItem::setDisabled(bool disabled)

如果 `disabled ` 为真,则禁用该项;否则启用该项。

另请参阅 isDisabled() 和setFlags()。

void QTreeWidgetItem::setExpanded(bool expand)

如果 `expand ` 为真,则展开该项目;否则,折叠该项目。

警告: 在调用此函数之前,必须将 QTreeWidgetItem 添加到QTreeWidget 中。

另请参阅 isExpanded()。

void QTreeWidgetItem::setFirstColumnSpanned(bool span)

如果span 为真,则将第一个部分设置为横跨所有列;否则显示所有项目部分。

另请参阅 isFirstColumnSpanned()。

void QTreeWidgetItem::setFlags(Qt::ItemFlags flags)

将该项的标志设置为给定的flags 。这些标志决定了该项是否可以被选中或修改。这通常用于禁用某项。

另请参阅 flags()。

void QTreeWidgetItem::setFont(int column, const QFont &font)

将用于显示给定column 中文本的字体设置为给定的font 。

另请参阅 font()、setText(),以及setForeground()。

void QTreeWidgetItem::setForeground(int column, const QBrush &brush)

将给定column 中标签的前景画笔设置为指定的brush 。

另请参阅 foreground()和setBackground()。

void QTreeWidgetItem::setHidden(bool hide)

如果hide 为true,则隐藏该项目;否则显示该项目。

注意: 如果该项当前不在视图中,调用 此函数将 没有任何效果。特别是,先对某项调用setHidden(true) ,然后才将其添加到视图中,该项仍会显示出来。

另请参阅 isHidden()。

void QTreeWidgetItem::setIcon(int column, const QIcon &icon)

将指定column 中显示的图标设置为icon 。

另请参阅 icon()、setText() 和iconSize 。

void QTreeWidgetItem::setSelected(bool select)

将该项的选中状态设置为select 。

另请参阅 isSelected()。

void QTreeWidgetItem::setSizeHint(int column, const QSize &size)

将给定column 中树项的大小提示设置为size 。如果未设置大小提示,或者size 无效,则项委托将根据项数据计算大小提示。

另请参阅 sizeHint()。

void QTreeWidgetItem::setStatusTip(int column, const QString &statusTip)

将指定column 的状态提示设置为指定的statusTip 。QTreeWidget 需启用鼠标跟踪功能,此功能才能正常工作。

另请参阅 statusTip()、setToolTip()、以及setWhatsThis()。

void QTreeWidgetItem::setText(int column, const QString &text)

将指定column 中显示的文本设置为指定的text 。

另请参阅 text()、setFont() 和setForeground()。

[since 6.4] void QTreeWidgetItem::setTextAlignment(int column, Qt::Alignment alignment)

将给定column 中标签的文本对齐方式设置为指定的alignment 。

该函数于 Qt 6.4 中引入。

另请参阅 textAlignment()。

void QTreeWidgetItem::setToolTip(int column, const QString &toolTip)

将给定column 的工具提示设置为toolTip 。

另请参阅 toolTip()、setStatusTip() 和setWhatsThis()。

void QTreeWidgetItem::setWhatsThis(int column, const QString &whatsThis)

将给定column 的“这是什么?”帮助设置为whatsThis 。

另请参阅 whatsThis()、setStatusTip() 和setToolTip()。

QSize QTreeWidgetItem::sizeHint(int column) const

返回在给定的column 中为树项设置的大小提示(参见QSize )。

另请参阅 setSizeHint()。

void QTreeWidgetItem::sortChildren(int column, Qt::SortOrder order)

使用给定的order ,根据给定的column 中的值对该项的子项进行排序。

注意: 如果该项未关联QTreeWidget ,则此 函数不执行任何操作。

QString QTreeWidgetItem::statusTip(int column) const

返回给定 `column` 内容的状态提示。

另请参阅 setStatusTip()。

QTreeWidgetItem *QTreeWidgetItem::takeChild(int index)

从index 中移除该项并返回它,否则返回0。

QList<QTreeWidgetItem *> QTreeWidgetItem::takeChildren()

移除子节点列表并返回该列表,否则返回一个空列表。

QString QTreeWidgetItem::text(int column) const

返回指定column 中的文本。

另请参阅 setText()。

int QTreeWidgetItem::textAlignment(int column) const

返回给定column 中标签的文本对齐方式。

注意: 出于历史原因,此 函数返回一个 int 类型。在 Qt 7 中,这将被修正为返回Qt::Alignment 。

另请参阅 setTextAlignment() 和Qt::Alignment 。

QString QTreeWidgetItem::toolTip(int column) const

返回给定column 的工具提示。

另请参阅 setToolTip()。

QTreeWidget *QTreeWidgetItem::treeWidget() const

返回包含该项的树控件。

int QTreeWidgetItem::type() const

返回传递给QTreeWidgetItem 构造函数的类型。

QString QTreeWidgetItem::whatsThis(int column) const

返回指定column 内容的“这是什么?”帮助信息。

另请参阅 setWhatsThis()。

[virtual] void QTreeWidgetItem::write(QDataStream &out) const

将该项目写入流out 。此操作仅写入单个项目的数据。

另请参阅 read()。

[virtual] bool QTreeWidgetItem::operator<(const QTreeWidgetItem &other) const

如果该项中的文本小于other 项中的文本,则返回true ;否则返回false 。

QTreeWidgetItem &QTreeWidgetItem::operator=(const QTreeWidgetItem &other)

将other 的数据和标志赋值给此项。请注意,type()和treeWidget()不会被复制。

在重写clone() 时,此函数非常有用。

另请参阅 data() 和flags()。

相关的非成员

QDataStream &operator<<(QDataStream &out, const QTreeWidgetItem &item)

将树控件项item 写入流out 。

该运算符使用QTreeWidgetItem::write()。

另请参阅 《Qt 数据类型的序列化》。

QDataStream &operator>>(QDataStream &in, QTreeWidgetItem &item)

从流in 中读取树控件项,并将其写入item 。

该运算符使用QTreeWidgetItem::read()。

另请参阅 《Qt 数据类型的序列化》。

© 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.