QTreeView¶
Inherited by: QHelpContentWidget, QTreeWidget
Synopsis¶
Functions¶
def
allColumnsShowFocus
()def
autoExpandDelay
()def
columnAt
(x)def
columnViewportPosition
(column)def
columnWidth
(column)def
drawTree
(painter, region)def
expandsOnDoubleClick
()def
header
()def
indentation
()def
indexAbove
(index)def
indexBelow
(index)def
indexRowSizeHint
(index)def
isAnimated
()def
isColumnHidden
(column)def
isExpanded
(index)def
isFirstColumnSpanned
(row, parent)def
isHeaderHidden
()def
isRowHidden
(row, parent)def
isSortingEnabled
()def
itemsExpandable
()def
resetIndentation
()def
rootIsDecorated
()def
rowHeight
(index)def
setAllColumnsShowFocus
(enable)def
setAnimated
(enable)def
setAutoExpandDelay
(delay)def
setColumnHidden
(column, hide)def
setColumnWidth
(column, width)def
setExpanded
(index, expand)def
setExpandsOnDoubleClick
(enable)def
setFirstColumnSpanned
(row, parent, span)def
setHeader
(header)def
setHeaderHidden
(hide)def
setIndentation
(i)def
setItemsExpandable
(enable)def
setRootIsDecorated
(show)def
setRowHidden
(row, parent, hide)def
setSortingEnabled
(enable)def
setTreePosition
(logicalIndex)def
setUniformRowHeights
(uniform)def
setWordWrap
(on)def
treePosition
()def
uniformRowHeights
()def
wordWrap
()
Virtual functions¶
def
drawBranches
(painter, rect, index)def
drawRow
(painter, options, index)
Slots¶
def
collapse
(index)def
collapseAll
()def
columnCountChanged
(oldCount, newCount)def
columnMoved
()def
columnResized
(column, oldSize, newSize)def
expand
(index)def
expandAll
()def
expandRecursively
(index[, depth=-1])def
expandToDepth
(depth)def
hideColumn
(column)def
reexpand
()def
resizeColumnToContents
(column)def
rowsRemoved
(parent, first, last)def
showColumn
(column)def
sortByColumn
(column)def
sortByColumn
(column, order)
Signals¶
Detailed Description¶
A
QTreeView
implements a tree representation of items from a model. This class is used to provide standard hierarchical lists that were previously provided by theQListView
class, but using the more flexible approach provided by Qt’s model/view architecture.The
QTreeView
class is one of the Model/View Classes and is part of Qt’s model/view framework .
QTreeView
implements the interfaces defined by theQAbstractItemView
class to allow it to display data provided by models derived from theQAbstractItemModel
class.It is simple to construct a tree view displaying data from a model. In the following example, the contents of a directory are supplied by a
QFileSystemModel
and displayed as a tree:model = QFileSystemModel() model.setRootPath(QDir.currentPath()) tree = QTreeView() tree.setModel(model)The model/view architecture ensures that the contents of the tree view are updated as the model changes.
Items that have children can be in an expanded (children are visible) or collapsed (children are hidden) state. When this state changes a
collapsed()
orexpanded()
signal is emitted with the model index of the relevant item.The amount of indentation used to indicate levels of hierarchy is controlled by the
indentation
property.Headers in tree views are constructed using the
QHeaderView
class and can be hidden usingheader()->hide()
. Note that each header is configured with itsstretchLastSection
property set to true, ensuring that the view does not waste any of the space assigned to it for its header. If this value is set to true, this property will override the resize mode set on the last section in the header.By default, all columns in a tree view are movable except the first. To disable movement of these columns, use
QHeaderView
‘ssetSectionsMovable()
function. For more information about rearranging sections, seeMoving Header Sections
.
Key Bindings¶
QTreeView
supports a set of key bindings that enable the user to navigate in the view and interact with the contents of items:
Key
Action
Up
Moves the cursor to the item in the same column on the previous row. If the parent of the current item has no more rows to navigate to, the cursor moves to the relevant item in the last row of the sibling that precedes the parent.
Down
Moves the cursor to the item in the same column on the next row. If the parent of the current item has no more rows to navigate to, the cursor moves to the relevant item in the first row of the sibling that follows the parent.
Left
Hides the children of the current item (if present) by collapsing a branch.
Minus
Same as Left.
Right
Reveals the children of the current item (if present) by expanding a branch.
Plus
Same as Right.
Asterisk
Expands the current item and all its children (if present).
PageUp
Moves the cursor up one page.
PageDown
Moves the cursor down one page.
Home
Moves the cursor to an item in the same column of the first row of the first top-level item in the model.
End
Moves the cursor to an item in the same column of the last row of the last top-level item in the model.
F2
In editable models, this opens the current item for editing. The Escape key can be used to cancel the editing process and revert any changes to the data displayed.
Improving Performance¶
It is possible to give the view hints about the data it is handling in order to improve its performance when displaying large numbers of items. One approach that can be taken for views that are intended to display items with equal heights is to set the
uniformRowHeights
property to true.See also
QListView
QTreeWidget
View ClassesQAbstractItemModel
QAbstractItemView
Dir View Example
- class PySide2.QtWidgets.QTreeView([parent=None])¶
- param parent:
Constructs a tree view with a
parent
to represent a model’s data. UsesetModel()
to set the model.See also
QAbstractItemModel
- PySide2.QtWidgets.QTreeView.allColumnsShowFocus()¶
- Return type:
bool
This property holds whether items should show keyboard focus using all columns.
If this property is
true
all columns will show focus, otherwise only one column will show focus.The default is false.
- PySide2.QtWidgets.QTreeView.autoExpandDelay()¶
- Return type:
int
This property holds The delay time before items in a tree are opened during a drag and drop operation..
This property holds the amount of time in milliseconds that the user must wait over a node before that node will automatically open or close. If the time is set to less then 0 then it will not be activated.
By default, this property has a value of -1, meaning that auto-expansion is disabled.
- PySide2.QtWidgets.QTreeView.collapse(index)¶
- Parameters:
index –
PySide2.QtCore.QModelIndex
Collapses the model item specified by the
index
.See also
- PySide2.QtWidgets.QTreeView.collapseAll()¶
Collapses all expanded items.
See also
- PySide2.QtWidgets.QTreeView.collapsed(index)¶
- Parameters:
index –
PySide2.QtCore.QModelIndex
- PySide2.QtWidgets.QTreeView.columnAt(x)¶
- Parameters:
x – int
- Return type:
int
Returns the column in the tree view whose header covers the
x
coordinate given.
- PySide2.QtWidgets.QTreeView.columnCountChanged(oldCount, newCount)¶
- Parameters:
oldCount – int
newCount – int
Informs the tree view that the number of columns in the tree view has changed from
oldCount
tonewCount
.
- PySide2.QtWidgets.QTreeView.columnMoved()¶
This slot is called whenever a column has been moved.
- PySide2.QtWidgets.QTreeView.columnResized(column, oldSize, newSize)¶
- Parameters:
column – int
oldSize – int
newSize – int
This function is called whenever
column
‘s size is changed in the header.oldSize
andnewSize
give the previous size and the new size in pixels.See also
- PySide2.QtWidgets.QTreeView.columnViewportPosition(column)¶
- Parameters:
column – int
- Return type:
int
Returns the horizontal position of the
column
in the viewport.
- PySide2.QtWidgets.QTreeView.columnWidth(column)¶
- Parameters:
column – int
- Return type:
int
Returns the width of the
column
.See also
- PySide2.QtWidgets.QTreeView.drawBranches(painter, rect, index)¶
- Parameters:
painter –
PySide2.QtGui.QPainter
rect –
PySide2.QtCore.QRect
index –
PySide2.QtCore.QModelIndex
Draws the branches in the tree view on the same row as the model item
index
, using thepainter
given. The branches are drawn in the rectangle specified byrect
.
- PySide2.QtWidgets.QTreeView.drawRow(painter, options, index)¶
- Parameters:
painter –
PySide2.QtGui.QPainter
options –
PySide2.QtWidgets.QStyleOptionViewItem
index –
PySide2.QtCore.QModelIndex
Draws the row in the tree view that contains the model item
index
, using thepainter
given. Theoption
controls how the item is displayed.See also
- PySide2.QtWidgets.QTreeView.drawTree(painter, region)¶
- Parameters:
painter –
PySide2.QtGui.QPainter
region –
PySide2.QtGui.QRegion
Draws the part of the tree intersecting the given
region
using the specifiedpainter
.See also
paintEvent()
- PySide2.QtWidgets.QTreeView.expand(index)¶
- Parameters:
index –
PySide2.QtCore.QModelIndex
Expands the model item specified by the
index
.See also
- PySide2.QtWidgets.QTreeView.expandAll()¶
Expands all expandable items.
Note
This function will not try to
fetch more
data.Warning
If the model contains a large number of items, this function will take some time to execute.
See also
- PySide2.QtWidgets.QTreeView.expandRecursively(index[, depth=-1])¶
- Parameters:
index –
PySide2.QtCore.QModelIndex
depth – int
Expands the item at the given
index
and all its children to the givendepth
. Thedepth
is relative to the givenindex
. Adepth
of -1 will expand all children, adepth
of 0 will only expand the givenindex
.Note
This function will not try to
fetch more
data.Warning
If the model contains a large number of items, this function will take some time to execute.
See also
- PySide2.QtWidgets.QTreeView.expandToDepth(depth)¶
- Parameters:
depth – int
Expands all expandable items to the given
depth
.Note
This function will not try to
fetch more
data.
- PySide2.QtWidgets.QTreeView.expanded(index)¶
- Parameters:
index –
PySide2.QtCore.QModelIndex
- PySide2.QtWidgets.QTreeView.expandsOnDoubleClick()¶
- Return type:
bool
This property holds whether the items can be expanded by double-clicking..
This property holds whether the user can expand and collapse items by double-clicking. The default value is true.
See also
- PySide2.QtWidgets.QTreeView.header()¶
- Return type:
Returns the header for the tree view.
See also
setHeader()
headerData()
- PySide2.QtWidgets.QTreeView.hideColumn(column)¶
- Parameters:
column – int
Hides the
column
given.Note
This function should only be called after the model has been initialized, as the view needs to know the number of columns in order to hide
column
.See also
- PySide2.QtWidgets.QTreeView.indentation()¶
- Return type:
int
This property holds indentation of the items in the tree view..
This property holds the indentation measured in pixels of the items for each level in the tree view. For top-level items, the indentation specifies the horizontal distance from the viewport edge to the items in the first column; for child items, it specifies their indentation from their parent items.
By default, the value of this property is style dependent. Thus, when the style changes, this property updates from it. Calling stops the updates, calling will restore default behavior.
- PySide2.QtWidgets.QTreeView.indexAbove(index)¶
- Parameters:
index –
PySide2.QtCore.QModelIndex
- Return type:
Returns the model index of the item above
index
.
- PySide2.QtWidgets.QTreeView.indexBelow(index)¶
- Parameters:
index –
PySide2.QtCore.QModelIndex
- Return type:
Returns the model index of the item below
index
.
- PySide2.QtWidgets.QTreeView.indexRowSizeHint(index)¶
- Parameters:
index –
PySide2.QtCore.QModelIndex
- Return type:
int
Returns the size hint for the row indicated by
index
.See also
sizeHintForColumn()
uniformRowHeights()
- PySide2.QtWidgets.QTreeView.isAnimated()¶
- Return type:
bool
This property holds whether animations are enabled.
If this property is
true
the treeview will animate expansion and collapsing of branches. If this property isfalse
, the treeview will expand or collapse branches immediately without showing the animation.By default, this property is
false
.
- PySide2.QtWidgets.QTreeView.isColumnHidden(column)¶
- Parameters:
column – int
- Return type:
bool
Returns
true
if thecolumn
is hidden; otherwise returnsfalse
.See also
- PySide2.QtWidgets.QTreeView.isExpanded(index)¶
- Parameters:
index –
PySide2.QtCore.QModelIndex
- Return type:
bool
Returns
true
if the model itemindex
is expanded; otherwise returns false.See also
- PySide2.QtWidgets.QTreeView.isFirstColumnSpanned(row, parent)¶
- Parameters:
row – int
parent –
PySide2.QtCore.QModelIndex
- Return type:
bool
Returns
true
if the item in first column in the givenrow
of theparent
is spanning all the columns; otherwise returnsfalse
.See also
- PySide2.QtWidgets.QTreeView.isHeaderHidden()¶
- Return type:
bool
This property holds whether the header is shown or not..
If this property is
true
, the header is not shown otherwise it is. The default value is false.See also
- PySide2.QtWidgets.QTreeView.isRowHidden(row, parent)¶
- Parameters:
row – int
parent –
PySide2.QtCore.QModelIndex
- Return type:
bool
Returns
true
if the item in the givenrow
of theparent
is hidden; otherwise returnsfalse
.See also
- PySide2.QtWidgets.QTreeView.isSortingEnabled()¶
- Return type:
bool
This property holds whether sorting is enabled.
If this property is
true
, sorting is enabled for the tree; if the property is false, sorting is not enabled. The default value is false.Note
In order to avoid performance issues, it is recommended that sorting is enabled after inserting the items into the tree. Alternatively, you could also insert the items into a list before inserting the items into the tree.
See also
- PySide2.QtWidgets.QTreeView.itemsExpandable()¶
- Return type:
bool
This property holds whether the items are expandable by the user..
This property holds whether the user can expand and collapse items interactively.
By default, this property is
true
.
- PySide2.QtWidgets.QTreeView.reexpand()¶
- PySide2.QtWidgets.QTreeView.resetIndentation()¶
This property holds indentation of the items in the tree view..
This property holds the indentation measured in pixels of the items for each level in the tree view. For top-level items, the indentation specifies the horizontal distance from the viewport edge to the items in the first column; for child items, it specifies their indentation from their parent items.
By default, the value of this property is style dependent. Thus, when the style changes, this property updates from it. Calling stops the updates, calling will restore default behavior.
- PySide2.QtWidgets.QTreeView.resizeColumnToContents(column)¶
- Parameters:
column – int
Resizes the
column
given to the size of its contents.See also
columnWidth()
setColumnWidth()
sizeHintForColumn()
resizeContentsPrecision()
- PySide2.QtWidgets.QTreeView.rootIsDecorated()¶
- Return type:
bool
This property holds whether to show controls for expanding and collapsing top-level items.
Items with children are typically shown with controls to expand and collapse them, allowing their children to be shown or hidden. If this property is false, these controls are not shown for top-level items. This can be used to make a single level tree structure appear like a simple list of items.
By default, this property is
true
.
- PySide2.QtWidgets.QTreeView.rowHeight(index)¶
- Parameters:
index –
PySide2.QtCore.QModelIndex
- Return type:
int
Returns the height of the row indicated by the given
index
.See also
- PySide2.QtWidgets.QTreeView.rowsRemoved(parent, first, last)¶
- Parameters:
parent –
PySide2.QtCore.QModelIndex
first – int
last – int
Informs the view that the rows from the
start
row to theend
row inclusive have been removed from the givenparent
model item.
- PySide2.QtWidgets.QTreeView.setAllColumnsShowFocus(enable)¶
- Parameters:
enable – bool
This property holds whether items should show keyboard focus using all columns.
If this property is
true
all columns will show focus, otherwise only one column will show focus.The default is false.
- PySide2.QtWidgets.QTreeView.setAnimated(enable)¶
- Parameters:
enable – bool
This property holds whether animations are enabled.
If this property is
true
the treeview will animate expansion and collapsing of branches. If this property isfalse
, the treeview will expand or collapse branches immediately without showing the animation.By default, this property is
false
.
- PySide2.QtWidgets.QTreeView.setAutoExpandDelay(delay)¶
- Parameters:
delay – int
This property holds The delay time before items in a tree are opened during a drag and drop operation..
This property holds the amount of time in milliseconds that the user must wait over a node before that node will automatically open or close. If the time is set to less then 0 then it will not be activated.
By default, this property has a value of -1, meaning that auto-expansion is disabled.
- PySide2.QtWidgets.QTreeView.setColumnHidden(column, hide)¶
- Parameters:
column – int
hide – bool
If
hide
is true thecolumn
is hidden, otherwise thecolumn
is shown.See also
- PySide2.QtWidgets.QTreeView.setColumnWidth(column, width)¶
- Parameters:
column – int
width – int
Sets the width of the given
column
to thewidth
specified.See also
- PySide2.QtWidgets.QTreeView.setExpanded(index, expand)¶
- Parameters:
index –
PySide2.QtCore.QModelIndex
expand – bool
Sets the item referred to by
index
to either collapse or expanded, depending on the value ofexpanded
.See also
- PySide2.QtWidgets.QTreeView.setExpandsOnDoubleClick(enable)¶
- Parameters:
enable – bool
This property holds whether the items can be expanded by double-clicking..
This property holds whether the user can expand and collapse items by double-clicking. The default value is true.
See also
- PySide2.QtWidgets.QTreeView.setFirstColumnSpanned(row, parent, span)¶
- Parameters:
row – int
parent –
PySide2.QtCore.QModelIndex
span – bool
If
span
is true the item in the first column in therow
with the givenparent
is set to span all columns, otherwise all items on therow
are shown.See also
- PySide2.QtWidgets.QTreeView.setHeader(header)¶
- Parameters:
header –
PySide2.QtWidgets.QHeaderView
Sets the header for the tree view, to the given
header
.The view takes ownership over the given
header
and deletes it when a new header is set.See also
headerData()
- PySide2.QtWidgets.QTreeView.setHeaderHidden(hide)¶
- Parameters:
hide – bool
This property holds whether the header is shown or not..
If this property is
true
, the header is not shown otherwise it is. The default value is false.See also
- PySide2.QtWidgets.QTreeView.setIndentation(i)¶
- Parameters:
i – int
This property holds indentation of the items in the tree view..
This property holds the indentation measured in pixels of the items for each level in the tree view. For top-level items, the indentation specifies the horizontal distance from the viewport edge to the items in the first column; for child items, it specifies their indentation from their parent items.
By default, the value of this property is style dependent. Thus, when the style changes, this property updates from it. Calling stops the updates, calling will restore default behavior.
- PySide2.QtWidgets.QTreeView.setItemsExpandable(enable)¶
- Parameters:
enable – bool
This property holds whether the items are expandable by the user..
This property holds whether the user can expand and collapse items interactively.
By default, this property is
true
.
- PySide2.QtWidgets.QTreeView.setRootIsDecorated(show)¶
- Parameters:
show – bool
This property holds whether to show controls for expanding and collapsing top-level items.
Items with children are typically shown with controls to expand and collapse them, allowing their children to be shown or hidden. If this property is false, these controls are not shown for top-level items. This can be used to make a single level tree structure appear like a simple list of items.
By default, this property is
true
.
- PySide2.QtWidgets.QTreeView.setRowHidden(row, parent, hide)¶
- Parameters:
row – int
parent –
PySide2.QtCore.QModelIndex
hide – bool
If
hide
is true therow
with the givenparent
is hidden, otherwise therow
is shown.See also
- PySide2.QtWidgets.QTreeView.setSortingEnabled(enable)¶
- Parameters:
enable – bool
This property holds whether sorting is enabled.
If this property is
true
, sorting is enabled for the tree; if the property is false, sorting is not enabled. The default value is false.Note
In order to avoid performance issues, it is recommended that sorting is enabled after inserting the items into the tree. Alternatively, you could also insert the items into a list before inserting the items into the tree.
See also
- PySide2.QtWidgets.QTreeView.setTreePosition(logicalIndex)¶
- Parameters:
logicalIndex – int
This specifies that the tree structure should be placed at logical index
index
. If set to -1 then the tree will always follow visual index 0.See also
- PySide2.QtWidgets.QTreeView.setUniformRowHeights(uniform)¶
- Parameters:
uniform – bool
This property holds whether all items in the treeview have the same height.
This property should only be set to true if it is guaranteed that all items in the view has the same height. This enables the view to do some optimizations.
The height is obtained from the first item in the view. It is updated when the data changes on that item.
Note
If the editor size hint is bigger than the cell size hint, then the size hint of the editor will be used.
By default, this property is
false
.
- PySide2.QtWidgets.QTreeView.setWordWrap(on)¶
- Parameters:
on – bool
This property holds the item text word-wrapping policy.
If this property is
true
then the item text is wrapped where necessary at word-breaks; otherwise it is not wrapped at all. This property isfalse
by default.Note that even if wrapping is enabled, the cell will not be expanded to fit all text. Ellipsis will be inserted according to the current
textElideMode
.
- PySide2.QtWidgets.QTreeView.showColumn(column)¶
- Parameters:
column – int
Shows the given
column
in the tree view.See also
- PySide2.QtWidgets.QTreeView.sortByColumn(column, order)¶
- Parameters:
column – int
order –
SortOrder
Sorts the model by the values in the given
column
andorder
.column
may be -1, in which case no sort indicator will be shown and the model will return to its natural, unsorted order. Note that not all models support this and may even crash in this case.See also
sortingEnabled
- PySide2.QtWidgets.QTreeView.sortByColumn(column)
- Parameters:
column – int
Note
This function is deprecated.
This is an overloaded function.
This function is deprecated. Use
sortByColumn
(int column,SortOrder
order) instead. Sorts the model by the values in the givencolumn
.
- PySide2.QtWidgets.QTreeView.treePosition()¶
- Return type:
int
Return the logical index the tree is set on. If the return value is -1 then the tree is placed on the visual index 0.
See also
- PySide2.QtWidgets.QTreeView.uniformRowHeights()¶
- Return type:
bool
This property holds whether all items in the treeview have the same height.
This property should only be set to true if it is guaranteed that all items in the view has the same height. This enables the view to do some optimizations.
The height is obtained from the first item in the view. It is updated when the data changes on that item.
Note
If the editor size hint is bigger than the cell size hint, then the size hint of the editor will be used.
By default, this property is
false
.
- PySide2.QtWidgets.QTreeView.wordWrap()¶
- Return type:
bool
This property holds the item text word-wrapping policy.
If this property is
true
then the item text is wrapped where necessary at word-breaks; otherwise it is not wrapped at all. This property isfalse
by default.Note that even if wrapping is enabled, the cell will not be expanded to fit all text. Ellipsis will be inserted according to the current
textElideMode
.
© 2022 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.