PySide6.QtWidgets.QTreeView¶
- class QTreeView¶
QTreeView
类提供了一个树视图的默认模型/视图实现。更多…继承者:
QTreeWidget
,QHelpContentWidget
概要¶
属性¶
allColumnsShowFocusᅟ
- 是否应使用所有列显示键盘焦点animatedᅟ
- 是否启用动画autoExpandDelayᅟ
- 在拖放操作期间,树中的项目打开前的延迟时间expandsOnDoubleClickᅟ
- 是否可以通过双击展开项目headerHiddenᅟ
- 是否显示标题indentationᅟ
- 树视图中项目的缩进itemsExpandableᅟ
- 用户是否可以展开项目rootIsDecoratedᅟ
- 是否显示用于展开和折叠顶级项目的控件sortingEnabledᅟ
- 是否启用排序uniformRowHeightsᅟ
- 树形视图中的所有项目是否具有相同的高度wordWrapᅟ
- 项目文本的换行策略
方法¶
def
__init__()
def
columnAt()
def
columnWidth()
def
drawTree()
def
header()
def
indentation()
def
indexAbove()
def
indexBelow()
def
isAnimated()
def
isColumnHidden()
def
isExpanded()
def
isHeaderHidden()
def
isRowHidden()
def
rowHeight()
def
setAnimated()
def
setColumnWidth()
def
setExpanded()
def
setHeader()
def
setIndentation()
def
setRowHidden()
def
setWordWrap()
def
treePosition()
def
wordWrap()
虚拟方法¶
def
drawBranches()
def
drawRow()
插槽¶
def
collapse()
def
collapseAll()
def
columnMoved()
def
columnResized()
def
expand()
def
expandAll()
def
expandToDepth()
def
hideColumn()
def
reexpand()
def
rowsRemoved()
def
showColumn()
def
sortByColumn()
信号¶
def
collapsed()
def
expanded()
注意
本文档可能包含从C++自动翻译到Python的代码片段。我们始终欢迎对代码片段翻译的贡献。如果您发现翻译问题,您也可以通过在我们的https:/bugreports.qt.io/projects/PYSIDE上创建工单来告知我们。
详细描述¶
警告
本节包含从C++自动翻译到Python的代码片段,可能包含错误。
一个
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,此属性将覆盖标题中最后一部分设置的调整大小模式。默认情况下,树视图中的所有列都可以移动,除了第一列。要禁用这些列的移动,请使用
QHeaderView
的setSectionsMovable()
函数。有关重新排列部分的更多信息,请参见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。
另请参阅
- Access functions:
- property headerHiddenᅟ: bool¶
此属性决定是否显示标题。
如果此属性为
true
,则不显示标题,否则显示。默认值为 false。另请参阅
- 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。- Access functions:
- property uniformRowHeightsᅟ: bool¶
此属性表示树视图中的所有项目是否具有相同的高度。
只有在保证视图中所有项目具有相同高度的情况下,才应将此属性设置为true。这使得视图能够进行一些优化。
高度是从视图中的第一个项目获取的。当该项目上的数据发生变化时,它会更新。
注意
如果编辑器的大小提示大于单元格的大小提示,则将使用编辑器的大小提示。
默认情况下,此属性为
false
。- Access functions:
- property wordWrapᅟ: bool¶
此属性保存项目文本的自动换行策略。
如果此属性为
true
,则项目文本在必要时在断字处换行;否则完全不换行。此属性默认为false
。请注意,即使启用了换行,单元格也不会扩展以适应所有文本。省略号将根据当前的
textElideMode
插入。- Access functions:
构建一个带有
parent
的树视图来表示模型的数据。使用setModel()
来设置模型。另请参阅
- allColumnsShowFocus()¶
- Return type:
布尔
属性
allColumnsShowFocusᅟ
的获取器。- autoExpandDelay()¶
- Return type:
整数
另请参阅
属性
autoExpandDelayᅟ
的获取器。- collapse(index)¶
- Parameters:
索引 –
QModelIndex
折叠由
index
指定的模型项。另请参阅
- 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
大小发生变化时,都会调用此函数。oldSize
和newSize
给出之前的大小和新的大小(以像素为单位)。另请参阅
- columnViewportPosition(column)¶
- Parameters:
列 – int
- Return type:
整数
返回视口中
column
的水平位置。- columnWidth(column)¶
- Parameters:
列 – int
- Return type:
整数
返回
column
的宽度。- drawBranches(painter, rect, index)¶
- Parameters:
画家 –
QPainter
rect –
QRect
index –
QModelIndex
在树视图中,使用给定的
painter
在与模型项index
同一行绘制分支。分支绘制在由rect
指定的矩形内。- drawRow(painter, options, index)¶
- Parameters:
画家 –
QPainter
options –
QStyleOptionViewItem
index –
QModelIndex
使用给定的
painter
绘制包含模型项index
的树视图行。option
控制项目的显示方式。使用指定的
painter
绘制与给定region
相交的树的部分。另请参阅
paintEvent()
- expand(index)¶
- Parameters:
索引 –
QModelIndex
展开由
index
指定的模型项。另请参阅
- expandAll()¶
展开所有可展开的项目。
注意
此函数将不会尝试获取更多数据。
- expandRecursively(index[, depth=-1])¶
- Parameters:
index –
QModelIndex
depth – int
展开给定
index
处的项目及其所有子项到给定的depth
。depth
是相对于给定index
的。depth
为-1将展开所有子项,depth
为0将仅展开给定的index
。注意
此函数将不会尝试获取更多数据。
- expandToDepth(depth)¶
- Parameters:
深度 – int
将所有可展开的项目展开到给定的
depth
。- expanded(index)¶
- Parameters:
索引 –
QModelIndex
当由
index
指定的项目展开时,会发出此信号。另请参阅
- expandsOnDoubleClick()¶
- Return type:
布尔
属性
expandsOnDoubleClickᅟ
的获取器。- header()¶
- Return type:
返回树形视图的标题。
另请参阅
- hideColumn(column)¶
- Parameters:
列 – int
隐藏给定的
column
。- indentation()¶
- Return type:
整数
另请参阅
属性
indentationᅟ
的获取器。- indexAbove(index)¶
- Parameters:
索引 –
QModelIndex
- Return type:
返回
index
上方项目的模型索引。- indexBelow(index)¶
- Parameters:
索引 –
QModelIndex
- Return type:
返回
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:
row – int
parent –
QModelIndex
- Return type:
布尔
如果给定
row
中的第一列项目跨越所有列,则返回true
;否则返回false
。- isHeaderHidden()¶
- Return type:
布尔
属性
headerHiddenᅟ
的获取器。- isRowHidden(row, parent)¶
- Parameters:
row – int
parent –
QModelIndex
- Return type:
布尔
如果给定
row
中的项目在parent
中被隐藏,则返回true
;否则返回false
。- isSortingEnabled()¶
- Return type:
布尔
属性
sortingEnabledᅟ
的获取器。- itemsExpandable()¶
- Return type:
布尔
另请参阅
属性
itemsExpandableᅟ
的获取器。- reexpand()¶
- resetIndentation()¶
属性
indentationᅟ
的重置功能。- resizeColumnToContents(column)¶
- Parameters:
列 – int
调整给定的
column
的大小以适应其内容。另请参阅
columnWidth()
setColumnWidth()
sizeHintForColumn()
resizeContentsPrecision()
- rootIsDecorated()¶
- Return type:
布尔
另请参阅
属性
rootIsDecoratedᅟ
的获取器。- rowHeight(index)¶
- Parameters:
索引 –
QModelIndex
- Return type:
整数
返回由给定
index
指示的行的高度。另请参阅
- rowsRemoved(parent, first, last)¶
- Parameters:
parent –
QModelIndex
first – int
last – int
通知视图,从
start
行到end
行(包括这两行)已经从给定的parent
模型项中移除。- setAllColumnsShowFocus(enable)¶
- Parameters:
enable – 布尔值
属性
allColumnsShowFocusᅟ
的设置器。- setAnimated(enable)¶
- Parameters:
enable – 布尔值
另请参阅
属性
animatedᅟ
的设置器。- setAutoExpandDelay(delay)¶
- Parameters:
delay – 整数
另请参阅
属性
autoExpandDelayᅟ
的设置器。- setColumnHidden(column, hide)¶
- Parameters:
column – 整数
hide – 布尔值
如果
hide
为真,则column
被隐藏,否则column
被显示。- setColumnWidth(column, width)¶
- Parameters:
column – 整数
width – int
将给定的
column
的宽度设置为指定的width
。- setExpanded(index, expand)¶
- Parameters:
index –
QModelIndex
expand – 布尔值
根据
expanded
的值,将index
所引用的项目设置为折叠或展开。- setExpandsOnDoubleClick(enable)¶
- Parameters:
enable – 布尔值
属性
expandsOnDoubleClickᅟ
的设置器。- setFirstColumnSpanned(row, parent, span)¶
- Parameters:
row – int
parent –
QModelIndex
span – 布尔值
如果
span
为真,则给定parent
的row
中的第一列项目将跨越所有列,否则将显示row
上的所有项目。- setHeader(header)¶
- Parameters:
头部 –
QHeaderView
将树形视图的标题设置为给定的
header
。视图接管给定的
header
,并在设置新标头时删除它。另请参阅
- setHeaderHidden(hide)¶
- Parameters:
hide – 布尔值
另请参阅
属性
headerHiddenᅟ
的设置器。- setIndentation(i)¶
- Parameters:
i – 整数
另请参阅
属性
indentationᅟ
的设置器。- setItemsExpandable(enable)¶
- Parameters:
enable – 布尔值
另请参阅
属性
itemsExpandableᅟ
的设置器。- setRootIsDecorated(show)¶
- Parameters:
显示 – 布尔值
另请参阅
属性
rootIsDecoratedᅟ
的设置器。- setRowHidden(row, parent, hide)¶
- Parameters:
row – int
parent –
QModelIndex
hide – 布尔值
如果
hide
为真,则带有给定parent
的row
将被隐藏,否则row
将显示。- setSortingEnabled(enable)¶
- Parameters:
enable – 布尔值
另请参阅
属性
sortingEnabledᅟ
的设置器。- setTreePosition(logicalIndex)¶
- Parameters:
logicalIndex – int
这指定了树结构应放置在逻辑索引
index
处。如果设置为-1,则树将始终跟随视觉索引0。- setUniformRowHeights(uniform)¶
- Parameters:
uniform – 布尔值
另请参阅
属性
uniformRowHeightsᅟ
的设置器。- setWordWrap(on)¶
- Parameters:
on – 布尔值
另请参阅
属性
wordWrapᅟ
的设置器。- showColumn(column)¶
- Parameters:
列 – int
在树视图中显示给定的
column
。按给定
column
和order
中的值对模型进行排序。column
可能为 -1,在这种情况下不会显示排序指示符,模型将返回其自然的未排序顺序。请注意,并非所有模型都支持此功能,甚至可能在这种情况下崩溃。另请参阅
sortingEnabled
- treePosition()¶
- Return type:
整数
返回树设置的逻辑索引。如果返回值为-1,则树放置在视觉索引0上。
另请参阅
- uniformRowHeights()¶
- Return type:
布尔
属性
uniformRowHeightsᅟ
的获取器。- wordWrap()¶
- Return type:
布尔
另请参阅
属性
wordWrapᅟ
的获取器。