QTreeWidgetItem Class

QTreeWidgetItem 类提供了与QTreeWidget 方便类一起使用的项目。更多

Header: #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

该枚举描述了用于描述树状 widget 项目的类型。

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

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

另请参阅 type().

成员函数文档

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

构建一个指定type 的树状 widget 项目。该项目必须插入到树状 widget 中。

另请参阅 type().

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

构建一个指定type 的树状 widget 项目,并将其附加到给定parent 中的项目。

另请参阅 type() 。

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

构建一个树状 widget 项目并将其附加到给定的parent 中。

另请参阅 type() 。

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

构建一个指定type 的树状 widget 项目。项目必须插入到树状 widget 中。给定的strings 列表将被设置为项目中每一列的项目文本。

另请参见 type().

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

为指定的type 构建一个树形 widget 项,并将其插入到给定的parent 中的preceding 项之后。

另请参阅 type().

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

构建一个指定type 的树形 widget 项目,并将其附加到给定parent 中的项目。给定的strings 列表将被设置为项目中每一列的项目文本。

另请参阅 type()。

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

为指定的type 构建一个树形 widget 项目,该项目将插入到parentpreceding 子项目之后。

另请参阅 type().

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

构建一个树形 widget 项目,并将其附加到给定的parent 中。给定的strings 列表将被设置为项目中每一列的项目文本。

另请参阅 type() 。

QTreeWidgetItem::QTreeWidgetItem(const QTreeWidgetItem &other)

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

该函数在重新实现clone() 时非常有用。

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

[virtual noexcept] QTreeWidgetItem::~QTreeWidgetItem()

销毁此树部件项目。

该项目将从QTreeWidgets 中删除。这样就可以随时安全地删除项目。

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

返回项目columnrole 的值。

另请参阅 setData() 。

[protected] void QTreeWidgetItem::emitDataChanged()

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

通常只有在子类化了QTreeWidgetItem 并重新实现了data() 和/或setData() 时才需要调用此函数。

另请参阅 setData()。

Qt::ItemFlags QTreeWidgetItem::flags() const

返回用于描述项目的标志。这些标志决定了是否可以检查、编辑和选择项目。

flags 的默认值是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)

在子代列表index 插入child 项目。

如果该子项目已插入其他地方,则不会再次插入。

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 。设置默认构建的刷子会让视图使用样式中的默认颜色。

注意: 如果QtWidgets 与 setBackground() 在同一 widget 上使用了Qt 样式表,则在设置冲突时,样式表将优先。

另请参阅 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)

将项目columnrole 的值设置为给定的value

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

注: 默认实现将Qt::EditRoleQt::DisplayRole 视为相同的数据。

另请参阅 data() 。

void QTreeWidgetItem::setDisabled(bool disabled)

如果disabled 为 true,则禁用项目;否则启用项目。

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

void QTreeWidgetItem::setExpanded(bool expand)

如果expand 为 true,则扩展项目,否则折叠项目。

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

另请参阅 isExpanded() 。

void QTreeWidgetItem::setFirstColumnSpanned(bool span)

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

另请参阅 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 的状态提示设置为给定的statusTipQTreeWidget 需要启用鼠标跟踪功能才能使用此功能。

另请参阅 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 XML 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 数据类型

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