- class QTreeView#
QTreeView
类提供了一个树形视图的默认模型/视图实现。更多信息...继承自:
QTreeWidget
,QHelpContentWidget
简述#
属性#
allColumnsShowFocus
- 是否使用所有列显示项目键盘焦点animated
- 是否启用动画autoExpandDelay
- 拖放操作期间在树中打开项目之前的延迟时间expandsOnDoubleClick
- 是否可以通过双击来展开项目headerHidden
- 是否显示或隐藏头indentation - 树视图中项目的缩进
itemsExpandable - 是否允许用户展开项目
rootIsDecorated - 是否显示对顶级项目进行展开和折叠的控制
sortingEnabled - 是否启用排序
uniformRowHeights - 树视图中所有项目是否具有相同的高度
wordWrap - 项目文本换行策略
方法#
def __init__()
def allColumnsShowFocus()
def autoExpandDelay()
def columnAt()
def columnViewportPosition()
def columnWidth()
def drawTree()
def expandsOnDoubleClick()
def header()
def indentation()
def indexAbove()
def indexBelow()
def indexRowSizeHint()
def isAnimated()
def isColumnHidden()
定义
isExpanded()
定义
rowHeight()
定义
setHeader()
定义
wordWrap()
虚方法#
定义
drawRow()
槽函数#
定义
collapse()
定义
expand()
定义
expandAll()
定义
hideColumn()
定义
reexpand()
定义
showColumn()
信号
#注
本文档可能包含从C++自动翻译成Python的代码片段。我们始终欢迎对片段翻译的贡献。如果您发现翻译问题,您还可以通过在https:/bugreports.qt.io/projects/PYSIDE创建工单来通知我们。
详细描述#
警告
本节包含自动从C++翻译成Python的代码片段,可能包含错误。
QTreeView
实现了一个模型的项的树形表示。此类用于提供由QListView
类以前提供的标准层次列表,但使用Qt的模型/视图架构提供的更灵活的方法。QTreeView
类是模型/视图类之一,也是Qt的模型/视图框架的一部分。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()
函数。有关重新排列部分的更多信息,请参阅移动标题部分
。键盘快捷键#
QTreeView
支持一系列键绑定,使用户能够导航视图并交互项的内容按键
动作
向上键
将光标移动到上一行同一列的项。如果当前项的父项没有更多的行可以导航,则光标移动到父项之前兄弟的最后一行的相关项。
向下键
将光标移动到下一行同一列的项。如果当前项的父项没有更多的行可以导航,则光标移动到父项之后兄弟的第一行的相关项。
向左键
通过折叠分支来隐藏当前项的子项(如果有的话)。
减号键
与向左键相同。
向右键
通过展开分支来显示当前项的子项(如果有的话)。
加号键
与向右键相同。
星号键
展开当前项及其所有子项(如果有的话)。
PageUp键
将光标向上移动一页。
PageDown键
将光标向下移动一页。
Home键
将光标移动到模型中第一个顶级项第一行的同一列的项。
End键
将光标移动到模型中最后一个顶级项最后一行的同一列的项。
F2键
在可编辑的模型中,此键用于打开当前项进行编辑。可以使用 Esc 键取消编辑过程并撤销对显示的数据所做的任何更改。
提高性能#
可以向视图提供有关处理的数据提示,以提高处理大量项时的显示性能。对于打算显示等高项的视图,可以将
uniformRowHeights
属性设置为 true 的一种方法。注
当使用
from __feature__ import true_property
时,可以直接使用属性,否则通过访问器函数。- 属性allColumnsShowFocus: bool#
此属性决定了是否应使用所有列显示键盘焦点。
如果此属性值为
true
,所有列将显示焦点,否则只有一列将显示焦点。默认值为false。
- 属性animated: bool#
此属性决定了是否启用动画。
如果此属性值为
true
,树视图将在展开和折叠分支时进行动画处理。如果此属性值为false
,则树视图将立即展开或折叠分支,而不显示动画。默认情况下,此属性值为
false
。- 属性autoExpandDelay: int#
此属性保存了在拖放操作期间打开树中的项目之前的延迟时间。
此属性保存用户在节点上等待的时间(以毫秒为单位),在该时间后节点将自动打开或关闭。如果时间设置为小于0,则不会激活。
默认情况下,此属性值为-1,表示禁用自动展开。
- 属性expandsOnDoubleClick: bool#
此属性决定了是否可以通过双击来展开项目。
此属性决定了用户是否可以通过双击来展开和折叠项目。默认值为true。
另请参阅
- 属性headerHidden: bool#
此属性决定了是否显示标题。
如果此属性值为
true
,则不显示标题,否则显示。默认值为false。另请参阅
- 属性 缩进: int#
此属性保存树视图中项目的缩进。
此属性保存树视图中每个级别的项目的像素缩进量。对于顶级项目,缩进指定第一列项目的视口边缘到项目的水平距离;对于子项目,它指定它们从父项目缩进的距离。
默认情况下,此属性值取决于样式。因此,当样式更改时,此属性会更新。调用setIndentation()停止更新,调用resetIndentation()将恢复默认行为。
- 属性 itemsExpandable: bool#
此属性保存用户是否可以扩展和折叠项目。
此属性保存用户是否可以交互式地展开和折叠项目。
默认情况下,此属性为
true
。- 属性 rootIsDecorated: bool#
此属性保存是否显示展开和折叠顶级项目的控件。
具有子项的项目通常是带控件的,可以展开和折叠它们,允许其子项显示或隐藏。如果此属性为false,则不会为顶级项目显示这些控件。这可以用作使单级树结构看起来像简单的项目列表。
默认情况下,此属性为
true
。- 属性 sortingEnabled: bool#
此属性保存是否启用排序。
如果此属性为
true
,则对树启用排序;如果属性为false,则不启用排序。默认值是false。- 属性 uniformRowHeights: bool#
此属性保存树视图中所有项目是否具有相同的高度。
如果可以保证视图中所有项目高度相同,则应将此属性设置为true。这可以启用视图进行一些优化。
高度来自视图中的第一个条目。当该条目的数据更改时,它将更新。
注
如果编辑器大小提示大于单元格大小提示,则使用编辑器的大小提示。
默认情况下,此属性值为
false
。- 属性 wordWrapᅟ: bool#
此属性持有项目文本换行策略。
如果此属性为
true
,则项目文本在需要的地方根据单词断点进行换行;否则,将不会进行换行。默认情况下,此属性为false
。注意,即使启用了换行,单元格也不会扩展以适应所有文本。将根据当前的
textElideMode
插入省略号。- 访问函数
使用父类
parent
构建一个树视图以表示模型的数据。请使用setModel()
来设置模型。另请参阅
- allColumnsShowFocus()#
- 返回类型:
bool
获取属性
allColumnsShowFocusᅟ
的值。- autoExpandDelay()#
- 返回类型:
int
另请参阅
获取属性
autoExpandDelayᅟ
的值。- collapse(index)#
- 参数:
index –
QModelIndex
将指定索引的模型项折叠。
另请参阅
- collapseAll()#
折叠所有展开的项目。
- collapsed(index)#
- 参数:
index –
QModelIndex
当索引指定的项目被折叠时,会发出此信号。
- columnAt(x)#
- 参数:
x – int
- 返回类型:
int
返回头覆盖给定坐标
x
的树视图中对应的列。- columnCountChanged(oldCount, newCount)#
- 参数:
oldCount – int
newCount – int
通知树视图中列的数量从
oldCount
变更到newCount
。- columnMoved()#
每当列被移动时都会调用此槽。
- columnResized(column, oldSize, newSize)#
- 参数:
column – int
oldSize – int
newSize – int
当
column
的尺寸在标题中改变时,会调用此函数。参数oldSize
和newSize
分别表示像素单位下的旧尺寸和新尺寸。另请参阅
- columnViewportPosition(column)#
- 参数:
column – int
- 返回类型:
int
返回
column
在视口中的水平位置。- columnWidth(column)#
- 参数:
column – int
- 返回类型:
int
返回
column
的宽度。- drawBranches(painter, rect, index)#
- 参数:
painter –
QPainter
rect –
QRect
index –
QModelIndex
使用给定的
painter
绘制与模型项index
相同行的树视图中的分支。分支将绘制在由rect
指定的矩形内。- drawRow(painter, options, index)#
- 参数:
painter –
QPainter
options –
QStyleOptionViewItem
index –
QModelIndex
使用给定的
painter
绘制包含模型项index
的树视图中的一行,通过option
控制该项的显示方式。使用指定的
painter
绘制与给定的region
交叉的树的部分。另请参阅
paintEvent()
- expand(index)#
- 参数:
index –
QModelIndex
展开由
index
指定的模型项。另请参阅
- expandAll()#
展开所有可展开的项。
注
此函数将不会尝试获取更多数据。
- expandRecursively(index[, depth=-1])#
- 参数:
index –
QModelIndex
depth – int
展开给定
index
处的项及其所有子项到指定的depth
。depth
是相对于给定index
的。depth
为 -1 将展开所有子项,depth
为 0 则仅展开给定的index
。注
此函数将不会尝试获取更多数据。
- expandToDepth(depth)#
- 参数:
depth – int
将所有可展开的项目展开到给定的
深度
。- expanded(index)#
- 参数:
index –
QModelIndex
当由
index
指定的项目展开时,会发出此信号。另请参阅
- expandsOnDoubleClick()#
- 返回类型:
bool
属性
expandsOnDoubleClick
的获取器。- header()#
- 返回类型:
返回树视图的头部。
另请参阅
- hideColumn(column)#
- 参数:
column – int
隐藏给定的
列
。- indentation()#
- 返回类型:
int
另请参阅
属性
indentation
的获取器。- indexAbove(index)#
- 参数:
index –
QModelIndex
- 返回类型:
返回
index
上方的项目模型索引。- indexBelow(index)#
- 参数:
index –
QModelIndex
- 返回类型:
返回位于
index
下的项的模型索引。- indexRowSizeHint(index)#
- 参数:
index –
QModelIndex
- 返回类型:
int
返回由
index
指示的行的尺寸提示。另请参阅
sizeHintForColumn()
uniformRowHeights()
- isAnimated()#
- 返回类型:
bool
属性
animatedᅟ
的获取器。- isColumnHidden(column)#
- 参数:
column – int
- 返回类型:
bool
如果
column
被隐藏,则返回true
;否则返回false
。- isExpanded(index)#
- 参数:
index –
QModelIndex
- 返回类型:
bool
如果模型项
index
被展开,则返回true
;否则返回 false。- isFirstColumnSpanned(row, parent)#
- 参数:
row – int
parent –
QModelIndex
- 返回类型:
bool
如果给定
parent
的row
中的第一列的项跨越所有列,则返回true
;否则返回false
。- isHeaderHidden()#
- 返回类型:
bool
属性
headerHiddenᅟ
的获取器。- isRowHidden(row, parent)#
- 参数:
row – int
parent –
QModelIndex
- 返回类型:
bool
如果给定
parent
中row
项处于隐藏状态,则返回true
;否则返回false
。- isSortingEnabled()#
- 返回类型:
bool
属性
sortingEnabled
的获取器。- itemsExpandable()#
- 返回类型:
bool
另请参阅
属性
itemsExpandable
的获取器。- reexpand()#
- resetIndentation()#
属性
indentation
的重置函数。- resizeColumnToContents(column)#
- 参数:
column – int
将给定的
column
调整到其内容大小。另请参阅
columnWidth()
setColumnWidth()
sizeHintForColumn()
resizeContentsPrecision()
- rootIsDecorated()#
- 返回类型:
bool
另请参阅
属性
rootIsDecorated
的获取器。- rowHeight(index)#
- 参数:
index –
QModelIndex
- 返回类型:
int
返回由给定
index
指示的行的长度。另请参阅
- rowsRemoved(parent, first, last)#
- 参数:
parent –
QModelIndex
first – int
last – int
通知视图,从
start
行到end
行(包含)已从指定的parent
模型项中删除。- setAllColumnsShowFocus(enable)#
- 参数:
enable – bool
属性
allColumnsShowFocusᅟ
的设置器。- setAnimated(enable)#
- 参数:
enable – bool
另请参阅
属性
animatedᅟ
的设置器。- setAutoExpandDelay(delay)#
- 参数:
delay – int
另请参阅
属性
autoExpandDelayᅟ
的设置器。- setColumnHidden(column, hide)#
- 参数:
column – int
hide – bool
如果
hide
为 true,则隐藏column
,否则显示column
。- setColumnWidth(column, width)#
- 参数:
column – int
width – int
将指定
column
的宽度设置为指定的width
。- setExpanded(index, expand)#
- 参数:
index –
QModelIndex
expand – bool
根据
expanded
的值将index
指示的项目设置为折叠或展开。- setExpandsOnDoubleClick(enable)#
- 参数:
enable – bool
属性
expandsOnDoubleClick
的设置器。- setFirstColumnSpanned(row, parent, span)#
- 参数:
row – int
parent –
QModelIndex
span – bool
如果
span
为真,则给定parent
的row
中的第一列的项目设置为跨所有列,否则该行的所有项目都会显示。- setHeader(header)#
- 参数:
header –
QHeaderView
将树视图的标题设置为给定的
header
。视图将获取给定
header
的所有权,并在设置新标题时删除它。另请参阅
- setHeaderHidden(hide)#
- 参数:
hide – bool
另请参阅
属性
headerHidden
的设置器。- setIndentation(i)#
- 参数:
i – int
另请参阅
属性
indentation
的设置器。- setItemsExpandable(enable)#
- 参数:
enable – bool
另请参阅
属性
itemsExpandable
的设置器。- setRootIsDecorated(show)#
- 参数:
show – bool
另请参阅
属性
rootIsDecorated
的设置器。- setRowHidden(row, parent, hide)#
- 参数:
row – int
parent –
QModelIndex
hide – bool
如果
hide
为 true,则隐藏具有给定parent
的row
;否则显示该row
。- setSortingEnabled(enable)#
- 参数:
enable – bool
另请参阅
属性
sortingEnabled
的设置器。- setTreePosition(logicalIndex)#
- 参数:
logicalIndex – int
指定树结构应放置在逻辑索引
index
位置。如果设置为 -1,则树始终跟随视觉索引 0。- setUniformRowHeights(uniform)#
- 参数:
uniform – bool
另请参阅
属性
uniformRowHeights
的设置器。- setWordWrap(on)#
- 参数:
on – bool
另请参阅
属性
wordWrap
的设置器。- showColumn(column)#
- 参数:
column – int
在树视图中显示给定的
column
。根据给定的
column
和order
对模型进行排序。column
可能是 -1,在这种情况下,将不会显示排序指示器,并且模型将返回到其自然、未排序的顺序。请注意,并非所有模型都支持此功能,并且在这种情况下甚至可能会崩溃。另请参阅
sortingEnabled
- treePosition()#
- 返回类型:
int
返回树设置的逻辑索引。如果返回值为 -1,则树放置在视觉索引 0。
另请参阅
- uniformRowHeights()#
- 返回类型:
bool
属性
uniformRowHeights
的获取器。- wordWrap()#
- 返回类型:
bool
另请参阅
属性
wordWrap
的获取器。