PySide6.QtWidgets.QTreeWidget

class QTreeWidget

QTreeWidget 类提供了一个使用预定义树模型的树视图。更多

PySide6.QtWidgets.QTreeWidget 的继承图

概要

属性

方法

虚拟方法

插槽

信号

注意

本文档可能包含从C++自动翻译到Python的代码片段。我们始终欢迎对代码片段翻译的贡献。如果您发现翻译问题,您也可以通过在我们的https:/bugreports.qt.io/projects/PYSIDE上创建工单来告知我们。

详细描述

警告

本节包含从C++自动翻译到Python的代码片段,可能包含错误。

../../_images/fusion-treeview.png

QTreeWidget 类是一个便利类,提供了一个标准的树形小部件,具有类似于 Qt 3 中 QListView 类使用的经典基于项目的界面。该类基于 Qt 的模型/视图架构,并使用默认模型来保存项目,每个项目都是一个 QTreeWidgetItem

不需要Model/View框架灵活性的开发者可以非常容易地使用这个类来创建简单的分层列表。更灵活的方法是将QTreeView与标准项目模型结合使用。这允许将数据的存储与其表示分开。

在最简单的形式中,树形小部件可以通过以下方式构建:

treeWidget = QTreeWidget()
treeWidget.setColumnCount(1)
*> = QList<QTreeWidgetItem()
for i in range(0, 10):
    items.append(QTreeWidgetItem(QTreeWidget(None), QStringList(QString("item: %1").arg(i))))
treeWidget.insertTopLevelItems(0, items)

在将项目添加到树形小部件之前,必须使用setColumnCount()设置列数。这允许每个项目拥有一个或多个标签或其他装饰。可以通过columnCount()函数找到正在使用的列数。

树可以有一个标题,其中包含小部件中每一列的部分。通过提供字符串列表使用setHeaderLabels()来设置每个部分的标签是最简单的,但也可以使用QTreeWidgetItem构建自定义标题,并使用setHeaderItem()函数将其插入到树中。

树中的项目可以根据预定义的排序顺序按列排序。如果启用了排序,用户可以通过点击列标题来对项目进行排序。可以通过调用setSortingEnabled()来启用或禁用排序。isSortingEnabled()函数指示是否启用了排序。

注意

当使用from __feature__ import true_property时,属性可以直接使用,否则通过访问器函数使用。

property columnCountᅟ: int

此属性保存树形部件中显示的列数。

默认情况下,此属性的值为1。

Access functions:
property topLevelItemCountᅟ: int

此属性保存顶级项目的数量。

默认情况下,此属性的值为0。

Access functions:
__init__([parent=None])
Parameters:

父级QWidget

使用给定的parent构建一个树形小部件。

addTopLevelItem(item)
Parameters:

项目QTreeWidgetItem

item 作为顶级项添加到小部件中。

另请参阅

insertTopLevelItem()

addTopLevelItems(items)
Parameters:

items – QTreeWidgetItem 的列表

items列表作为小部件的顶级项目追加。

另请参阅

insertTopLevelItems()

clear()

通过移除所有项目和选择来清除树形小部件。

注意

由于每个项目在删除之前都会从树形小部件中移除,因此在项目的析构函数中调用treeWidget()的返回值将是无效的。

closePersistentEditor(item[, column=0])
Parameters:

关闭给定columnitem的持久编辑器。

如果没有为该项和列的组合打开持久编辑器,则此函数无效。

collapseItem(item)
Parameters:

项目QTreeWidgetItem

关闭item。这将导致包含该项子项的树被折叠。

columnCount()
Return type:

整数

另请参阅

setColumnCount()

属性 columnCountᅟ 的获取器。

currentColumn()
Return type:

整数

返回树形部件中的当前列。

currentItem()
Return type:

QTreeWidgetItem

返回树形小部件中的当前项。

currentItemChanged(current, previous)
Parameters:

当当前项目发生变化时,会发出此信号。当前项目由current指定,这将替换previous当前项目。

另请参阅

setCurrentItem()

dropMimeData(parent, index, data, action)
Parameters:
Return type:

布尔

处理由拖放操作提供的data,该操作以给定的action在给定的parent项目中的index结束。

默认实现返回true,如果通过解码mime数据并将其插入模型成功处理了拖放操作;否则返回false

另请参阅

supportedDropActions()

editItem(item[, column=0])
Parameters:

如果可编辑,则开始编辑给定column中的item

expandItem(item)
Parameters:

项目QTreeWidgetItem

展开item。这将导致包含项目子项的树被展开。

findItems(text, flags[, column=0])
Parameters:
  • 文本 – str

  • flagsMatchFlag 的组合

  • column – 整数

Return type:

QTreeWidgetItem的列表

返回与给定text匹配的项目列表,使用给定的flags,在给定的column中。

headerItem()
Return type:

QTreeWidgetItem

返回用于树形小部件标题的项目。

另请参阅

setHeaderItem()

indexFromItem(item[, column=0])
Parameters:
Return type:

QModelIndex

返回与给定item在给定column中关联的QModelIndex。

注意

在Qt 5.7之前的版本中,此函数接受一个非constitem

indexOfTopLevelItem(item)
Parameters:

项目QTreeWidgetItem

Return type:

整数

返回给定顶层item的索引,如果找不到该项目则返回-1。

insertTopLevelItem(index, item)
Parameters:

在视图的顶层index处插入item

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

insertTopLevelItems(index, items)
Parameters:
  • index – 整数

  • items – QTreeWidgetItem 的列表

在视图的顶层index处插入items列表。

已经插入到其他地方的项目将不会被插入。

另请参阅

addTopLevelItems()

invisibleRootItem()
Return type:

QTreeWidgetItem

返回树形小部件的不可见根项。

不可见的根项目通过QTreeWidgetItem API提供了对树形小部件顶层项目的访问,使得编写能够以统一方式处理顶层项目及其子项目的函数成为可能;例如,递归函数。

isPersistentEditorOpen(item[, column=0])
Parameters:
Return type:

布尔

返回是否在列 column 中为项目 item 打开了持久编辑器。

itemAbove(item)
Parameters:

项目QTreeWidgetItem

Return type:

QTreeWidgetItem

返回给定item上方的项目。

itemActivated(item, column)
Parameters:

当用户通过单击或双击(取决于平台,即SH_ItemView_ActivateItemOnSingleClick样式提示)或按下特殊键(例如,Enter)激活项目时,会发出此信号。

指定的item是被点击的项目,如果没有项目被点击,则为Nonecolumn是被点击项目的列,如果没有项目被点击,则为-1。

itemAt(p)
Parameters:

pQPoint

Return type:

QTreeWidgetItem

返回指向坐标p处项目的指针。坐标相对于树小部件的viewport()

另请参阅

visualItemRect()

itemAt(x, y)
Parameters:
  • x – 整数

  • y – 整数

Return type:

QTreeWidgetItem

这是一个重载函数。

返回指向坐标(x, y)处项目的指针。坐标相对于树小部件的viewport()

itemBelow(item)
Parameters:

项目QTreeWidgetItem

Return type:

QTreeWidgetItem

返回在视觉上位于给定item下方的项目。

itemChanged(item, column)
Parameters:

当指定item中的column内容发生变化时,会发出此信号。

itemClicked(item, column)
Parameters:

当用户在小部件内点击时,会发出此信号。

指定的item是被点击的项目。column是被点击的项目的列。如果没有项目被点击,则不会发出信号。

itemCollapsed(item)
Parameters:

项目QTreeWidgetItem

当指定的item被折叠时,会发出此信号,以便不显示其任何子项。

注意

如果在调用collapseAll()时某个项目更改了其状态,则不会发出此信号。

itemDoubleClicked(item, column)
Parameters:

当用户在小部件内双击时,会发出此信号。

指定的item是被点击的项目,如果没有点击任何项目,则为Nonecolumn是被点击项目的列。如果没有双击任何项目,则不会发出信号。

itemEntered(item, column)
Parameters:

当鼠标光标进入指定column上的item时,会发出此信号。需要启用QTreeWidget的鼠标跟踪功能才能使此功能正常工作。

itemExpanded(item)
Parameters:

项目QTreeWidgetItem

当指定的item被展开以显示其所有子项时,会发出此信号。

itemFromIndex(index)
Parameters:

索引QModelIndex

Return type:

QTreeWidgetItem

返回一个指向与给定index关联的QTreeWidgetItem的指针。

另请参阅

indexFromItem()

itemPressed(item, column)
Parameters:

当用户在小部件内按下鼠标按钮时,会发出此信号。

指定的item是被点击的项目,如果没有项目被点击,则为Nonecolumn是被点击项目的列,如果没有项目被点击,则为-1。

itemSelectionChanged()

当树形控件中的选择发生变化时,会发出此信号。可以使用selectedItems()找到当前的选择。

itemWidget(item, column)
Parameters:
Return type:

QWidget

返回在由item指定的单元格和给定的column中显示的小部件。

mimeData(items)
Parameters:

items – QTreeWidgetItem 的列表

Return type:

QMimeData

返回一个包含指定items序列化描述的对象。用于描述项目的格式是从mimeTypes()函数中获取的。

如果项目列表为空,则返回None而不是序列化的空列表。

mimeTypes()
Return type:

字符串列表

返回可用于描述树形小部件项目列表的MIME类型列表。

另请参阅

mimeData()

openPersistentEditor(item[, column=0])
Parameters:

在给定的column中为item打开一个持久编辑器。

removeItemWidget(item, column)
Parameters:

移除给定item中给定column中设置的小部件。

scrollToItem(item[, hint=QAbstractItemView.ScrollHint.EnsureVisible])
Parameters:

确保item可见,必要时使用指定的hint滚动视图。

selectedItems()
Return type:

QTreeWidgetItem的列表

返回所有选中的非隐藏项的列表。

另请参阅

itemSelectionChanged()

setColumnCount(columns)
Parameters:

columns – int

另请参阅

columnCount()

属性 columnCountᅟ 的设置器。

setCurrentItem(item)
Parameters:

项目QTreeWidgetItem

设置树形部件中的当前item

除非选择模式是NoSelection,否则该项目也会被选中。

setCurrentItem(item, column)
Parameters:

设置树形部件中的当前item和当前列为column

另请参阅

currentItem()

setCurrentItem(item, column, command)
Parameters:

使用给定的command,将树形部件中的当前item和当前列设置为column

另请参阅

currentItem()

setHeaderItem(item)
Parameters:

项目QTreeWidgetItem

设置树形小部件的标题item。标题中每列的标签由项目中的相应标签提供。

树形小部件接管了项目的所有权。

setHeaderLabel(label)
Parameters:

标签 – str

setHeaderLabels (QStringList(label)) 相同。

setHeaderLabels(labels)
Parameters:

labels – 字符串列表

在标题中为labels列表中的每个项目添加一列,并为每列设置标签。

请注意,setHeaderLabels() 不会移除现有的列。

setItemWidget(item, column, widget)
Parameters:

将给定的widget设置为在由给定的itemcolumn指定的单元格中显示。

给定的widgetautoFillBackground属性必须设置为true,否则小部件的背景将是透明的,显示模型数据和树形小部件项。

此函数应仅用于在树形部件项的位置显示静态内容。如果您想显示自定义动态内容或实现自定义编辑器部件,请使用QTreeView并子类化QStyledItemDelegate

在项目层次结构设置之前,不能调用此函数,即,在设置widget之前,必须将包含widgetQTreeWidgetItem添加到视图中。

注意

树接管了widget的所有权。

sortColumn()
Return type:

整数

返回用于对小部件内容进行排序的列。

另请参阅

sortItems()

sortItems(column, order)
Parameters:

按指定order中的值对部件中的项目进行排序,依据给定的column

另请参阅

sortColumn()

supportedDropActions()
Return type:

DropAction的组合

返回此视图支持的拖放操作。

另请参阅

DropActions

takeTopLevelItem(index)
Parameters:

索引 – int

Return type:

QTreeWidgetItem

移除树中给定index处的顶层项目并返回它,否则返回None

topLevelItem(index)
Parameters:

索引 – int

Return type:

QTreeWidgetItem

返回给定index处的顶层项目,如果项目不存在则返回None

topLevelItemCount()
Return type:

整数

属性 topLevelItemCountᅟ 的获取器。

visualItemRect(item)
Parameters:

项目QTreeWidgetItem

Return type:

QRect

返回视口中由item处的项目占据的矩形。

另请参阅

itemAt()