PySide6.QtWidgets.QTreeView

class QTreeView

QTreeView 类提供了一个树视图的默认模型/视图实现。更多

PySide6.QtWidgets.QTreeView 的继承图

继承者: QTreeWidget, QHelpContentWidget

概要

属性

方法

虚拟方法

插槽

信号

注意

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

详细描述

警告

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

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

一个QTreeView实现了模型中项目的树形表示。此类用于提供以前由QListView类提供的标准层次列表,但使用Qt的模型/视图架构提供的更灵活的方法。

QTreeView 类是 Model/View Classes 之一,并且是 Qt 的 model/view framework 的一部分。

QTreeView 实现了由 QAbstractItemView 类定义的接口,使其能够显示从 QAbstractItemModel 类派生的模型提供的数据。

从模型中显示数据的树视图的构建非常简单。在以下示例中,目录的内容由QFileSystemModel提供,并以树的形式显示:

    model = QFileSystemModel()
    model.setRootPath(QDir.currentPath())
if __name__ == "__main__":

    app = QApplication([])
    splitter = QSplitter()
tree.setModel(model)

模型/视图架构确保树视图的内容随着模型的更改而更新。

具有子项的项可以处于展开(子项可见)或折叠(子项隐藏)状态。当此状态发生变化时,会发出带有相关项的模型索引的collapsed()expanded()信号。

用于指示层次结构级别的缩进量由indentation属性控制。

树视图中的标题是使用QHeaderView类构建的,并且可以使用header()->hide()隐藏。请注意,每个标题都配置了其stretchLastSection属性设置为true,确保视图不会浪费分配给其标题的任何空间。如果此值设置为true,此属性将覆盖标题中最后一部分设置的调整大小模式。

默认情况下,树视图中的所有列都可以移动,除了第一列。要禁用这些列的移动,请使用QHeaderViewsetSectionsMovable()函数。有关重新排列部分的更多信息,请参见Moving Header Sections

键绑定

QTreeView 支持一组键绑定,使用户能够在视图中导航并与项目内容进行交互:

操作

将光标移动到上一行同一列的项目。如果当前项目的父级没有更多的行可以导航,光标将移动到父级之前的兄弟的最后一行中的相关项目。

向下

将光标移动到下一行同一列的项目。如果当前项目的父级没有更多的行可以导航,光标将移动到父级之后的兄弟行的第一行中的相关项目。

通过折叠分支隐藏当前项目的子项(如果存在)。

Minus

与左相同。

通过展开分支显示当前项目的子项(如果存在)。

Plus

与Right相同。

Asterisk

展开当前项目及其所有子项目(如果存在)。

PageUp

将光标向上移动一页。

PageDown

将光标向下移动一页。

首页

将光标移动到模型中第一个顶级项目的同一列的第一行的项目。

结束

将光标移动到模型中最后一个顶级项目的最后一行的同一列中的项目。

F2

在可编辑模型中,这将打开当前项目进行编辑。可以使用Escape键取消编辑过程并恢复显示数据的任何更改。

提高性能

为了提高显示大量项目时的性能,可以向视图提供有关其处理的数据的提示。对于旨在显示具有相同高度的项目的视图,可以采取的一种方法是将uniformRowHeights属性设置为true。

注意

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

property allColumnsShowFocusᅟ: bool

此属性决定是否应使用所有列显示项目的键盘焦点。

如果此属性为true,所有列将显示焦点,否则只有一列会显示焦点。

默认值为 false。

Access functions:
property animatedᅟ: bool

此属性表示是否启用了动画。

如果此属性为true,树视图将动画显示分支的展开和折叠。如果此属性为false,树视图将立即展开或折叠分支,而不显示动画。

默认情况下,此属性为 false

Access functions:
property autoExpandDelayᅟ: int

此属性保存拖放操作期间树中项目打开前的延迟时间。

此属性保存用户必须在一个节点上等待的时间(以毫秒为单位),然后该节点将自动打开。如果时间设置为小于0,则不会激活。

默认情况下,此属性的值为-1,表示自动扩展已禁用。

Access functions:
property expandsOnDoubleClickᅟ: bool

此属性表示是否可以通过双击展开项目。

此属性决定用户是否可以通过双击来展开和折叠项目。默认值为 true。

另请参阅

itemsExpandable

Access functions:
property headerHiddenᅟ: bool

此属性决定是否显示标题。

如果此属性为 true,则不显示标题,否则显示。默认值为 false。

另请参阅

header()

Access functions:
property indentationᅟ: int

此属性保存树视图中项目的缩进。

此属性保存树视图中每个级别项目的缩进量,以像素为单位。对于顶级项目,缩进指定了从视口边缘到第一列项目的水平距离;对于子项目,它指定了它们相对于父项目的缩进。

默认情况下,此属性的值取决于样式。因此,当样式更改时,此属性会从中更新。调用 setIndentation() 会停止更新,调用 resetIndentation() 将恢复默认行为。

Access functions:
property itemsExpandableᅟ: bool

此属性表示用户是否可以展开项目。

此属性表示用户是否可以交互式地展开和折叠项目。

默认情况下,此属性为 true

Access functions:
property rootIsDecoratedᅟ: bool

此属性用于控制是否显示用于展开和折叠顶级项目的控件。

具有子项的项通常会显示用于展开和折叠它们的控件,允许显示或隐藏它们的子项。如果此属性为false,则顶级项不会显示这些控件。这可以用于使单级树结构看起来像简单的项目列表。

默认情况下,此属性为 true

Access functions:
property sortingEnabledᅟ: bool

此属性表示是否启用了排序。

如果此属性为true,则启用树的排序;如果属性为false,则不启用排序。默认值为false。

注意

为了避免性能问题,建议在将项目插入树中之后启用排序。或者,您也可以先将项目插入列表中,然后再将项目插入树中。

另请参阅

sortByColumn()

Access functions:
property uniformRowHeightsᅟ: bool

此属性表示树视图中的所有项目是否具有相同的高度。

只有在保证视图中所有项目具有相同高度的情况下,才应将此属性设置为true。这使得视图能够进行一些优化。

高度是从视图中的第一个项目获取的。当该项目上的数据发生变化时,它会更新。

注意

如果编辑器的大小提示大于单元格的大小提示,则将使用编辑器的大小提示。

默认情况下,此属性为 false

Access functions:
property wordWrapᅟ: bool

此属性保存项目文本的自动换行策略。

如果此属性为true,则项目文本在必要时在断字处换行;否则完全不换行。此属性默认为false

请注意,即使启用了换行,单元格也不会扩展以适应所有文本。省略号将根据当前的textElideMode插入。

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

父级QWidget

构建一个带有parent的树视图来表示模型的数据。使用setModel()来设置模型。

另请参阅

QAbstractItemModel

allColumnsShowFocus()
Return type:

布尔

属性 allColumnsShowFocusᅟ 的获取器。

autoExpandDelay()
Return type:

整数

另请参阅

setAutoExpandDelay()

属性 autoExpandDelayᅟ 的获取器。

collapse(index)
Parameters:

索引QModelIndex

折叠由index指定的模型项。

另请参阅

collapsed()

collapseAll()

折叠所有已展开的项目。

collapsed(index)
Parameters:

索引QModelIndex

当由index指定的项目被折叠时,会发出此信号。

columnAt(x)
Parameters:

x – 整数

Return type:

整数

返回树视图中标题覆盖给定x坐标的列。

columnCountChanged(oldCount, newCount)
Parameters:
  • oldCount – int

  • newCount – int

通知树视图,树视图中的列数已从oldCount更改为newCount

columnMoved()

每当列被移动时,都会调用此插槽。

columnResized(column, oldSize, newSize)
Parameters:
  • column – 整数

  • oldSize – int

  • newSize – int

每当标题中的column大小发生变化时,都会调用此函数。oldSizenewSize给出之前的大小和新的大小(以像素为单位)。

另请参阅

setColumnWidth()

columnViewportPosition(column)
Parameters:

– int

Return type:

整数

返回视口中column的水平位置。

columnWidth(column)
Parameters:

– int

Return type:

整数

返回column的宽度。

drawBranches(painter, rect, index)
Parameters:

在树视图中,使用给定的painter在与模型项index同一行绘制分支。分支绘制在由rect指定的矩形内。

drawRow(painter, options, index)
Parameters:

使用给定的painter绘制包含模型项index的树视图行。option控制项目的显示方式。

drawTree(painter, region)
Parameters:

使用指定的painter绘制与给定region相交的树的部分。

另请参阅

paintEvent()

expand(index)
Parameters:

索引QModelIndex

展开由index指定的模型项。

另请参阅

expanded()

expandAll()

展开所有可展开的项目。

注意

此函数将不会尝试获取更多数据。

警告

如果模型包含大量项目,此函数将需要一些时间来执行。

expandRecursively(index[, depth=-1])
Parameters:

展开给定index处的项目及其所有子项到给定的depthdepth是相对于给定index的。depth为-1将展开所有子项,depth为0将仅展开给定的index

注意

此函数将不会尝试获取更多数据。

警告

如果模型包含大量项目,此函数将需要一些时间来执行。

另请参阅

expandAll()

expandToDepth(depth)
Parameters:

深度 – int

将所有可展开的项目展开到给定的depth

注意

此函数将不会尝试获取更多数据。

expanded(index)
Parameters:

索引QModelIndex

当由index指定的项目展开时,会发出此信号。

另请参阅

setExpanded()

expandsOnDoubleClick()
Return type:

布尔

属性 expandsOnDoubleClickᅟ 的获取器。

header()
Return type:

QHeaderView

返回树形视图的标题。

另请参阅

setHeader() headerData()

hideColumn(column)
Parameters:

– int

隐藏给定的column

注意

此函数应在模型初始化后调用,因为视图需要知道列数以隐藏column

indentation()
Return type:

整数

另请参阅

setIndentation()

属性 indentationᅟ 的获取器。

indexAbove(index)
Parameters:

索引QModelIndex

Return type:

QModelIndex

返回index上方项目的模型索引。

indexBelow(index)
Parameters:

索引QModelIndex

Return type:

QModelIndex

返回index下方项目的模型索引。

indexRowSizeHint(index)
Parameters:

索引QModelIndex

Return type:

整数

返回由index指示的行的尺寸提示。

另请参阅

sizeHintForColumn() uniformRowHeights()

isAnimated()
Return type:

布尔

属性 animatedᅟ 的获取器。

isColumnHidden(column)
Parameters:

– int

Return type:

布尔

如果column被隐藏,则返回true;否则返回false

isExpanded(index)
Parameters:

索引QModelIndex

Return type:

布尔

如果模型项 index 已展开,则返回 true;否则返回 false。

isFirstColumnSpanned(row, parent)
Parameters:
Return type:

布尔

如果给定row中的第一列项目跨越所有列,则返回true;否则返回false

isHeaderHidden()
Return type:

布尔

属性 headerHiddenᅟ 的获取器。

isRowHidden(row, parent)
Parameters:
Return type:

布尔

如果给定row中的项目在parent中被隐藏,则返回true;否则返回false

isSortingEnabled()
Return type:

布尔

属性 sortingEnabledᅟ 的获取器。

itemsExpandable()
Return type:

布尔

另请参阅

setItemsExpandable()

属性 itemsExpandableᅟ 的获取器。

reexpand()
resetIndentation()

属性 indentationᅟ 的重置功能。

resizeColumnToContents(column)
Parameters:

– int

调整给定的column的大小以适应其内容。

另请参阅

columnWidth() setColumnWidth() sizeHintForColumn() resizeContentsPrecision()

rootIsDecorated()
Return type:

布尔

另请参阅

setRootIsDecorated()

属性 rootIsDecoratedᅟ 的获取器。

rowHeight(index)
Parameters:

索引QModelIndex

Return type:

整数

返回由给定index指示的行的高度。

另请参阅

indexRowSizeHint()

rowsRemoved(parent, first, last)
Parameters:

通知视图,从start行到end行(包括这两行)已经从给定的parent模型项中移除。

setAllColumnsShowFocus(enable)
Parameters:

enable – 布尔值

另请参阅

allColumnsShowFocus()

属性 allColumnsShowFocusᅟ 的设置器。

setAnimated(enable)
Parameters:

enable – 布尔值

另请参阅

isAnimated()

属性 animatedᅟ 的设置器。

setAutoExpandDelay(delay)
Parameters:

delay – 整数

另请参阅

autoExpandDelay()

属性 autoExpandDelayᅟ 的设置器。

setColumnHidden(column, hide)
Parameters:
  • column – 整数

  • hide – 布尔值

如果 hide 为真,则 column 被隐藏,否则 column 被显示。

setColumnWidth(column, width)
Parameters:
  • column – 整数

  • width – int

将给定的column的宽度设置为指定的width

setExpanded(index, expand)
Parameters:

根据expanded的值,将index所引用的项目设置为折叠或展开。

setExpandsOnDoubleClick(enable)
Parameters:

enable – 布尔值

另请参阅

expandsOnDoubleClick()

属性 expandsOnDoubleClickᅟ 的设置器。

setFirstColumnSpanned(row, parent, span)
Parameters:
  • row – int

  • parentQModelIndex

  • span – 布尔值

如果 span 为真,则给定 parentrow 中的第一列项目将跨越所有列,否则将显示 row 上的所有项目。

另请参阅

isFirstColumnSpanned()

setHeader(header)
Parameters:

头部QHeaderView

将树形视图的标题设置为给定的 header

视图接管给定的header,并在设置新标头时删除它。

另请参阅

headerData()

setHeaderHidden(hide)
Parameters:

hide – 布尔值

另请参阅

isHeaderHidden()

属性 headerHiddenᅟ 的设置器。

setIndentation(i)
Parameters:

i – 整数

另请参阅

indentation()

属性 indentationᅟ 的设置器。

setItemsExpandable(enable)
Parameters:

enable – 布尔值

另请参阅

itemsExpandable()

属性 itemsExpandableᅟ 的设置器。

setRootIsDecorated(show)
Parameters:

显示 – 布尔值

另请参阅

rootIsDecorated()

属性 rootIsDecoratedᅟ 的设置器。

setRowHidden(row, parent, hide)
Parameters:
  • row – int

  • parentQModelIndex

  • hide – 布尔值

如果 hide 为真,则带有给定 parentrow 将被隐藏,否则 row 将显示。

setSortingEnabled(enable)
Parameters:

enable – 布尔值

另请参阅

isSortingEnabled()

属性 sortingEnabledᅟ 的设置器。

setTreePosition(logicalIndex)
Parameters:

logicalIndex – int

这指定了树结构应放置在逻辑索引index处。如果设置为-1,则树将始终跟随视觉索引0。

setUniformRowHeights(uniform)
Parameters:

uniform – 布尔值

另请参阅

uniformRowHeights()

属性 uniformRowHeightsᅟ 的设置器。

setWordWrap(on)
Parameters:

on – 布尔值

另请参阅

wordWrap()

属性 wordWrapᅟ 的设置器。

showColumn(column)
Parameters:

– int

在树视图中显示给定的column

sortByColumn(column, order)
Parameters:

按给定columnorder中的值对模型进行排序。

column 可能为 -1,在这种情况下不会显示排序指示符,模型将返回其自然的未排序顺序。请注意,并非所有模型都支持此功能,甚至可能在这种情况下崩溃。

另请参阅

sortingEnabled

treePosition()
Return type:

整数

返回树设置的逻辑索引。如果返回值为-1,则树放置在视觉索引0上。

另请参阅

setTreePosition()

uniformRowHeights()
Return type:

布尔

另请参阅

setUniformRowHeights()

属性 uniformRowHeightsᅟ 的获取器。

wordWrap()
Return type:

布尔

另请参阅

setWordWrap()

属性 wordWrapᅟ 的获取器。