QTreeWidgetItem为使用QTreeWidget类提供一个方便的项(item)。
Header: | #include <QTreeWidgetItem> |
CMake: | find_package(Qt6 REQUIRED COMPONENTS Widgets) target_link_libraries(mytarget PRIVATE Qt6::Widgets) |
qmake: | QT += widgets |
- 所有成员的列表,包括继承的成员
- 已弃用的成员(官方不推荐使用)
【详细描述】
QTreeWidgetItem用于保存树控件的信息行。行通常包含多列数据,每列数据可以包含一个文本标签和一个图标。
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() 插入到子项列表中的给定索引处。
默认情况下,项目是启用的(enabled)、可选的(selectable)、可检查的( checkable),并且可以是拖放操作的源。可以通过调用具有适当值的setFlags() 来更改每个项目的标志(请参阅Qt::ItemFlags)。可以使用 setCheckState() 函数设置可检查状态。相应的checkState() 函数指示当前是否选中了该项目。
子类化
在对 QTreeWidgetItem 进行子类化以提供自定义项目时,可以为它们定义新类型,以便将它们与标准项目区分开来。需要此功能的子类的构造函数需要调用具有等于或大于 的新类型值的基类构造函数UserType。
成员类型文档
enum QTreeWidgetItem::ChildIndicatorPolicy
名称 | 值 | 描述 |
---|---|---|
QTreeWidgetItem::ShowIndicator | 0 | 即使没有子项,也会显示此项的展开和折叠控件。 |
QTreeWidgetItem::DontShowIndicator | 1 | 即使有孩子,也不会显示扩展和折叠的控件。如果强制打开节点,用户将无法展开或折叠项目。 |
QTreeWidgetItem::DontShowIndicatorWhenChildless | 2 | 如果项目包含子项,将显示用于展开和折叠的控件。 |
enum QTreeWidgetItem::ItemType
此枚举描述用于描述树构件项的类型。
名称 | 值 | 描述 |
---|---|---|
QTreeWidgetItem::Type | 0 | 树构件项的默认类型。 |
QTreeWidgetItem::UserType | 1000 | 自定义类型的最小值。UserType 以下的值由 Qt 保留。 |
您可以在QTreeWidgetItem子类中定义新的用户类型,以确保对自定义项进行特殊处理。例如,对项目进行排序时。
【公共类型】
enum | ChildIndicatorPolicy { ShowIndicator, DontShowIndicator, DontShowIndicatorWhenChildless } |
enum | ItemType { Type, UserType } |
【公有函数】
一共有4个参数: 1.构造指type的树形控件项。 2.给定的QStringList将设置为项目中每列的文本。 3.新构造项附加到parent。 4.新构造项插入到 preceding项之后。 右侧多种构造函数是以上4个参数的组合,新构造的项必须插入到树构件中。 最后一种是构造other的副本。注意,不会复制type() 和 treeWidget()。 | QTreeWidgetItem(int type = Type) |
QTreeWidgetItem(const QStringList &strings, int type = Type) | |
QTreeWidgetItem(QTreeWidget *parent, int type = Type) | |
QTreeWidgetItem(QTreeWidget *parent, const QStringList &strings, int type = Type) | |
QTreeWidgetItem(QTreeWidget *parent, QTreeWidgetItem *preceding, int type = Type) | |
QTreeWidgetItem(QTreeWidgetItem *parent, int type = Type) | |
QTreeWidgetItem(QTreeWidgetItem *parent, const QStringList &strings, int type = Type) | |
QTreeWidgetItem(QTreeWidgetItem *parent, QTreeWidgetItem *preceding, int type = Type) | |
QTreeWidgetItem(const QTreeWidgetItem &other) | |
virtual | ~QTreeWidgetItem() |
void | addChild(QTreeWidgetItem *child) |
将child项追加到子项列表中。 | |
void | addChildren(const QList<QTreeWidgetItem *> &children) |
将给定的children列表追加到项目中。 | |
QBrush | background(int column) const |
返回用于呈现指定column的背景画笔。 | |
Qt::CheckState | checkState(int column) const |
返回给定column标签的检查状态。 | |
QTreeWidgetItem * | child(int index) const |
返回项的子项列表中index给定的项。 | |
int | childCount() const |
返回子项的数目。 | |
QTreeWidgetItem::ChildIndicatorPolicy | childIndicatorPolicy() const |
返回项指示器策略。此策略决定何时显示树枝展开/折叠指示器。 | |
virtual QTreeWidgetItem * | clone() const |
创建项及其子项的深层副本。 | |
int | columnCount() const |
virtual QVariant | data(int column, int role) const |
返回项的column和role的值。 | |
Qt::ItemFlags | flags() const |
返回用于描述项的标志。标志决定是否可以检查、编辑和选择项目。 | |
QFont | font(int column) const |
返回用于呈现指定column中的文本的字体。 | |
QBrush | foreground(int column) const |
返回用于呈现指定column的前景(例如文本)的画笔。设置默认构造的画笔将允许视图使用样式中的默认颜色。 | |
QIcon | icon(int column) const |
返回在指定的column中显示的图标。 | |
int | indexOfChild(QTreeWidgetItem *child) const |
返回给定的的索引child 在项目的子项目列表中。 | |
void | insertChild(int index, QTreeWidgetItem *child) |
在child子项列表 index中插入项。如果孩子已经插入到其他地方,则不会再次插入。 | |
void | insertChildren(int index, const QList<QTreeWidgetItem *> &children) |
将给定的children列表插入到index的项子项列表中。已插入到其他位置的子项将不会插入。 | |
bool | isDisabled() const |
如果项目被禁用,则返回true ;否则返回false 。 | |
bool | isExpanded() const |
如果项目展开, | |
bool | isFirstColumnSpanned() const |
如果项跨越一行中的所有列 | |
bool | isHidden() const |
如果项目处于隐藏状态,则返回true ,否则返回 false 。 | |
bool | isSelected() const |
如果选择该项,则返回true ,否则返回 false 。 | |
QTreeWidgetItem * | parent() const |
返回项的父项。 | |
virtual void | read(QDataStream &in) |
从流中读取项目。这只会将数据读取到单个项目中。 | |
void | removeChild(QTreeWidgetItem *child) |
删除child指示的给定项。删除的项不会被删除。 | |
void | setBackground(int column, const QBrush &brush) |
将给定标签column的背景画笔设置为brush,设置默认构造的画笔将允许视图使用样式中的默认颜色。 注意: 如果与Qt Style Sheets用于同一控件,则在设置冲突时,样式表将优先。 | |
void | setCheckState(int column, Qt::CheckState state) |
将处于给定 column检查状态的项设置为state。 | |
void | setChildIndicatorPolicy(QTreeWidgetItem::ChildIndicatorPolicy policy) |
设置项目指示符policy。此策略决定何时显示树枝展开/折叠指示器。默认值为DontShowIndicatorWhenChildless 。 | |
virtual void | setData(int column, int role, const QVariant &value) |
将项 column的 role 值设置为给定的value。role描述由value指定的数据类型,并由枚举 Qt::ItemDataRole定义。注意: 默认实现将 Qt::ItemDataRole视为引用相同的数据。 | |
void | setDisabled(bool disabled) |
如果为 true则禁用,否则启用该项。 | |
void | setExpanded(bool expand) |
如果expand 为 true,则将第一部分设置为跨越所有列;否则,将显示所有项目部分。 警告: QTreeWidgetItem在调用此函数之前,必须将其添加到QTreeWidget中。 | |
void | setFirstColumnSpanned(bool span) |
如果 span 为 true,则将第一部分设置为跨越所有列;否则,将显示所有项目部分。 | |
void | setFlags(Qt::ItemFlags flags) |
将项的标志设置为给定的flags,这些决定了是否可以选择或修改项目。这通常用于禁用项目。 | |
void | setFont(int column, const QFont &font) |
将用于显示文本的column设置为给定的font。 | |
void | setForeground(int column, const QBrush &brush) |
将给定标签column的前景画笔设置为指定的brush。 | |
void | setHidden(bool hide) |
如果为 true,则隐藏项目,否则显示该项目。 | |
void | setIcon(int column, const QIcon &icon) |
将要在给定的column中显示的图标设置为icon。 | |
void | setSelected(bool select) |
将项的选定状态设置为select。 | |
void | setSizeHint(int column, const QSize &size) |
将给定的column树项的大小提示设置为size。如果未设置大小提示或无效,则项委托将根据项数据计算大小提示。 | |
void | setStatusTip(int column, const QString &statusTip) |
将给定column的状态提示设置为给定的statusTip,需要启用鼠标跟踪才能使此功能正常工作。 | |
void | setText(int column, const QString &text) |
将要在给定column中显示的文本设置为给定的text。 | |
void | setTextAlignment(int column, Qt::Alignment alignment) |
将给定column标签的文本对齐方式设置为指定alignment。 | |
void | setToolTip(int column, const QString &toolTip) |
将给定column,的工具提示设置为toolTip。 | |
void | setWhatsThis(int column, const QString &whatsThis) |
将 “What's This?” 帮助设置为whatsThis。 | |
QSize | sizeHint(int column) const |
返回给定 column的树项设置的大小提示(请参见 QSize)。 | |
void | sortChildren(int column, Qt::SortOrder order) |
使用给定的order对项的子项进行排序,按给定column中的值进行排序。 如果项目未与QTreeWidget关联,则此函数不执行任何操作。 | |
QString | statusTip(int column) const |
返回给定column内容的状态提示。 | |
QTreeWidgetItem * | takeChild(int index) |
删除index项并返回它,否则返回 0。 | |
QList<QTreeWidgetItem *> | takeChildren() |
删除子列表并返回它,否则返回一个空列表。 | |
QString | text(int column) const |
返回 column指定的文本。 | |
int | textAlignment(int column) const |
返回给定column中标签的文本对齐方式。 | |
QString | toolTip(int column) const |
返回给定column的工具提示。 | |
QTreeWidget * | treeWidget() const |
返回包含项的树构件。 | |
int | type() const |
返回传递给构造函数的类型。 | |
QString | whatsThis(int column) const |
返回给定column的 “What's This?” 帮助 。 | |
virtual void | write(QDataStream &out) const |
将项目写入输出流 。这仅从一个项目写入数据。 | |
virtual bool | operator<(const QTreeWidgetItem &other) const |
如果项中的文本小于other项中的文本,则返回true ,否则返回 false 。 | |
QTreeWidgetItem & | operator=(const QTreeWidgetItem &other) |
如果项中的文本等于other项中的文本,则返回true ,否则返回 false 。 |
【受保护函数】
void | emitDataChanged() | 使与此项关联的模型发出此项的dataChanged() 信号。 |
【相关非成员】
QDataStream & | operator<<(QDataStream &out, const QTreeWidgetItem &item) |
QDataStream & | operator>>(QDataStream &in, QTreeWidgetItem &item) |