- Qt 6.11
- Qt Widgets
- C++ Classes
- QTreeView
- Qt 6.11.0 Reference Documentation

# QTreeView Class

The QTreeView class provides a default model/view implementation of a tree view. More...

Header: | `#include <QTreeView>`
CMake: | `find_package(Qt6 REQUIRED COMPONENTS Widgets)` `target_link_libraries(mytarget PRIVATE Qt6::Widgets)`
qmake: | `QT += widgets`
Inherits: | QAbstractItemView
Inherited By: | QHelpContentWidget and QTreeWidget

- List of all members, including inherited members

## Properties

allColumnsShowFocus : bool animated : bool autoExpandDelay : int expandsOnDoubleClick : bool headerHidden : bool indentation : int | itemsExpandable : bool rootIsDecorated : bool sortingEnabled : bool uniformRowHeights : bool wordWrap : bool

## Public Functions

| QTreeView(QWidget *parent = nullptr)
virtual | ~QTreeView()
bool | allColumnsShowFocus() const
int | autoExpandDelay() const
int | columnAt(int x) const
int | columnViewportPosition(int column) const
int | columnWidth(int column) const
bool | expandsOnDoubleClick() const
QHeaderView * | header() const
int | indentation() const
QModelIndex | indexAbove(const QModelIndex &index) const
QModelIndex | indexBelow(const QModelIndex &index) const
bool | isAnimated() const
bool | isColumnHidden(int column) const
bool | isExpanded(const QModelIndex &index) const
bool | isFirstColumnSpanned(int row, const QModelIndex &parent) const
bool | isHeaderHidden() const
bool | isRowHidden(int row, const QModelIndex &parent) const
bool | isSortingEnabled() const
bool | itemsExpandable() const
void | resetIndentation()
bool | rootIsDecorated() const
void | setAllColumnsShowFocus(bool enable)
void | setAnimated(bool enable)
void | setAutoExpandDelay(int delay)
void | setColumnHidden(int column, bool hide)
void | setColumnWidth(int column, int width)
void | setExpanded(const QModelIndex &index, bool expanded)
void | setExpandsOnDoubleClick(bool enable)
void | setFirstColumnSpanned(int row, const QModelIndex &parent, bool span)
void | setHeader(QHeaderView *header)
void | setHeaderHidden(bool hide)
void | setIndentation(int i)
void | setItemsExpandable(bool enable)
void | setRootIsDecorated(bool show)
void | setRowHidden(int row, const QModelIndex &parent, bool hide)
void | setSortingEnabled(bool enable)
void | setTreePosition(int index)
void | setUniformRowHeights(bool uniform)
void | setWordWrap(bool on)
int | treePosition() const
bool | uniformRowHeights() const
bool | wordWrap() const

## Reimplemented Public Functions

virtual void | dataChanged(const QModelIndex &topLeft, const QModelIndex &bottomRight, const QList<int> &roles = QList<int>()) override
virtual void | doItemsLayout() override
virtual QModelIndex | indexAt(const QPoint &point) const override
virtual void | keyboardSearch(const QString &search) override
virtual void | reset() override
virtual void | scrollTo(const QModelIndex &index, QAbstractItemView::ScrollHint hint = EnsureVisible) override
virtual void | selectAll() override
virtual void | setModel(QAbstractItemModel *model) override
virtual void | setRootIndex(const QModelIndex &index) override
virtual void | setSelectionModel(QItemSelectionModel *selectionModel) override
virtual QRect | visualRect(const QModelIndex &index) const override

## Public Slots

void | collapse(const QModelIndex &index)
void | collapseAll()
void | expand(const QModelIndex &index)
void | expandAll()
void | expandRecursively(const QModelIndex &index, int depth = -1)
void | expandToDepth(int depth)
void | hideColumn(int column)
void | resizeColumnToContents(int column)
void | showColumn(int column)
void | sortByColumn(int column, Qt::SortOrder order)

## Signals

void | collapsed(const QModelIndex &index)
void | expanded(const QModelIndex &index)

## Protected Functions

virtual void | drawBranches(QPainter *painter, const QRect &rect, const QModelIndex &index) const
virtual void | drawRow(QPainter *painter, const QStyleOptionViewItem &option, const QModelIndex &index) const
void | drawTree(QPainter *painter, const QRegion &region) const
int | indexRowSizeHint(const QModelIndex &index) const
int | rowHeight(const QModelIndex &index) const

## Reimplemented Protected Functions

virtual void | changeEvent(QEvent *event) override
virtual void | currentChanged(const QModelIndex &current, const QModelIndex &previous) override
virtual void | dragMoveEvent(QDragMoveEvent *event) override
virtual int | horizontalOffset() const override
virtual void | horizontalScrollbarAction(int action) override
virtual bool | isIndexHidden(const QModelIndex &index) const override
virtual void | keyPressEvent(QKeyEvent *event) override
virtual void | mouseDoubleClickEvent(QMouseEvent *event) override
virtual void | mouseMoveEvent(QMouseEvent *event) override
virtual void | mousePressEvent(QMouseEvent *event) override
virtual void | mouseReleaseEvent(QMouseEvent *event) override
virtual QModelIndex | moveCursor(QAbstractItemView::CursorAction cursorAction, Qt::KeyboardModifiers modifiers) override
virtual void | paintEvent(QPaintEvent *event) override
virtual void | rowsAboutToBeRemoved(const QModelIndex &parent, int start, int end) override
virtual void | rowsInserted(const QModelIndex &parent, int start, int end) override
virtual void | scrollContentsBy(int dx, int dy) override
virtual QModelIndexList | selectedIndexes() const override
virtual void | selectionChanged(const QItemSelection &selected, const QItemSelection &deselected) override
virtual void | setSelection(const QRect &rect, QItemSelectionModel::SelectionFlags command) override
virtual int | sizeHintForColumn(int column) const override
virtual void | timerEvent(QTimerEvent *event) override
virtual void | updateGeometries() override
virtual int | verticalOffset() const override
virtual bool | viewportEvent(QEvent *event) override
virtual QSize | viewportSizeHint() const override
virtual QRegion | visualRegionForSelection(const QItemSelection &selection) const override

## Protected Slots

void | columnCountChanged(int oldCount, int newCount)
void | columnMoved()
void | columnResized(int column, int oldSize, int newSize)
void | rowsRemoved(const QModelIndex &parent, int start, int end)

## 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 the `QListView` 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 the QAbstractItemView class to allow it to display data provided by models derived from the QAbstractItemModel 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:

     QFileSystemModel *model = new QFileSystemModel;
     model->setRootPath(QDir::currentPath());
     QTreeView *tree = new QTreeView(splitter);
     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() or expanded() 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 using `header()->hide()`. Note that each header is configured with its stretchLastSection 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's setSectionsMovable() function. For more information about rearranging sections, see Moving 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 Classes, QAbstractItemModel, and QAbstractItemView.

## Property Documentation

### allColumnsShowFocus : 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.

Access functions:

bool | allColumnsShowFocus() const
void | setAllColumnsShowFocus(bool enable)

### animated : 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 is `false`, the treeview will expand or collapse branches immediately without showing the animation.

By default, this property is `false`.

Access functions:

bool | isAnimated() const
void | setAnimated(bool enable)

### autoExpandDelay : 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. 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.

Access functions:

int | autoExpandDelay() const
void | setAutoExpandDelay(int delay)

### expandsOnDoubleClick : 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.

Access functions:

bool | expandsOnDoubleClick() const
void | setExpandsOnDoubleClick(bool enable)

See also itemsExpandable.

### headerHidden : 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.

Access functions:

bool | isHeaderHidden() const
void | setHeaderHidden(bool hide)

See also header().

### indentation : int

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 setIndentation() stops the updates, calling resetIndentation() will restore default behavior.

Access functions:

int | indentation() const
void | setIndentation(int i)
void | resetIndentation()

### itemsExpandable : 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`.

Access functions:

bool | itemsExpandable() const
void | setItemsExpandable(bool enable)

### rootIsDecorated : 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`.

Access functions:

bool | rootIsDecorated() const
void | setRootIsDecorated(bool show)

### sortingEnabled : 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.

Access functions:

bool | isSortingEnabled() const
void | setSortingEnabled(bool enable)

See also sortByColumn().

### uniformRowHeights : 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`.

Access functions:

bool | uniformRowHeights() const
void | setUniformRowHeights(bool uniform)

### wordWrap : 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 is `false` 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.

Access functions:

bool | wordWrap() const
void | setWordWrap(bool on)

## Member Function Documentation

### `[explicit]` QTreeView::QTreeView(QWidget *parent = nullptr)

Constructs a tree view with a parent to represent a model's data. Use setModel() to set the model.

See also QAbstractItemModel.

### `[virtual noexcept]` QTreeView::~QTreeView()

Destroys the tree view.

### `[override virtual protected]` void QTreeView::changeEvent(QEvent *event)

Reimplements: QFrame::changeEvent(QEvent *ev).

### `[slot]` void QTreeView::collapse(const QModelIndex &index)

Collapses the model item specified by the index.

See also collapsed().

### `[slot]` void QTreeView::collapseAll()

Collapses all expanded items.

See also expandAll(), expand(), collapse(), and setExpanded().

### `[signal]` void QTreeView::collapsed(const QModelIndex &index)

This signal is emitted when the item specified by index is collapsed.

### int QTreeView::columnAt(int x) const

Returns the column in the tree view whose header covers the x coordinate given.

### `[protected slot]` void QTreeView::columnCountChanged(int oldCount, int newCount)

Informs the tree view that the number of columns in the tree view has changed from oldCount to newCount.

### `[protected slot]` void QTreeView::columnMoved()

This slot is called whenever a column has been moved.

### `[protected slot]` void QTreeView::columnResized(int column, int oldSize, int newSize)

This function is called whenever column's size is changed in the header. oldSize and newSize give the previous size and the new size in pixels.

See also setColumnWidth().

### int QTreeView::columnViewportPosition(int column) const

Returns the horizontal position of the column in the viewport.

### int QTreeView::columnWidth(int column) const

Returns the width of the column.

See also resizeColumnToContents() and setColumnWidth().

### `[override virtual protected]` void QTreeView::currentChanged(const QModelIndex &current, const QModelIndex &previous)

Reimplements: QAbstractItemView::currentChanged(const QModelIndex &current, const QModelIndex &previous).

### `[override virtual]` void QTreeView::dataChanged(const QModelIndex &topLeft, const QModelIndex &bottomRight, const QList<int> &roles = QList<int>())

Reimplements: QAbstractItemView::dataChanged(const QModelIndex &topLeft, const QModelIndex &bottomRight, const QList<int> &roles).

### `[override virtual protected]` void QTreeView::dragMoveEvent(QDragMoveEvent *event)

Reimplements: QAbstractItemView::dragMoveEvent(QDragMoveEvent *event).

### `[virtual protected]` void QTreeView::drawBranches(QPainter *painter, const QRect &rect, const QModelIndex &index) const

Draws the branches in the tree view on the same row as the model item index, using the painter given. The branches are drawn in the rectangle specified by rect.

### `[virtual protected]` void QTreeView::drawRow(QPainter *painter, const QStyleOptionViewItem &option, const QModelIndex &index) const

Draws the row in the tree view that contains the model item index, using the painter given. The option controls how the item is displayed.

See also setAlternatingRowColors().

### `[protected]` void QTreeView::drawTree(QPainter *painter, const QRegion &region) const

Draws the part of the tree intersecting the given region using the specified painter.

See also paintEvent().

### `[slot]` void QTreeView::expand(const QModelIndex &index)

Expands the model item specified by the index.

See also expanded().

### `[slot]` void 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 collapseAll(), expand(), collapse(), and setExpanded().

### `[slot]` void QTreeView::expandRecursively(const QModelIndex &index, int depth = -1)

Expands the item at the given index and all its children to the given depth. The depth is relative to the given index. A depth of -1 will expand all children, a depth of 0 will only expand the given index.

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 expandAll().

### `[slot]` void QTreeView::expandToDepth(int depth)

Expands all expandable items to the given depth.

Note: This function will not try to fetch more data.

See also expandAll(), collapseAll(), expand(), collapse(), and setExpanded().

### `[signal]` void QTreeView::expanded(const QModelIndex &index)

This signal is emitted when the item specified by index is expanded.

See also setExpanded().

### QHeaderView *QTreeView::header() const

Returns the header for the tree view.

See also setHeader() and QAbstractItemModel::headerData().

### `[slot]` void QTreeView::hideColumn(int column)

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 showColumn() and setColumnHidden().

### `[override virtual protected]` int QTreeView::horizontalOffset() const

Reimplements: QAbstractItemView::horizontalOffset() const.

Returns the horizontal offset of the items in the treeview.

Note that the tree view uses the horizontal header section positions to determine the positions of columns in the view.

See also verticalOffset().

### QModelIndex QTreeView::indexAbove(const QModelIndex &index) const

Returns the model index of the item above index.

### `[override virtual]` QModelIndex QTreeView::indexAt(const QPoint &point) const

Reimplements: QAbstractItemView::indexAt(const QPoint &point) const.

### QModelIndex QTreeView::indexBelow(const QModelIndex &index) const

Returns the model index of the item below index.

### `[protected]` int QTreeView::indexRowSizeHint(const QModelIndex &index) const

Returns the size hint for the row indicated by index.

See also sizeHintForColumn() and uniformRowHeights().

### bool QTreeView::isColumnHidden(int column) const

Returns `true` if the column is hidden; otherwise returns `false`.

See also hideColumn() and isRowHidden().

### bool QTreeView::isExpanded(const QModelIndex &index) const

Returns `true` if the model item index is expanded; otherwise returns false.

See also expand(), expanded(), and setExpanded().

### bool QTreeView::isFirstColumnSpanned(int row, const QModelIndex &parent) const

Returns `true` if the item in first column in the given row of the parent is spanning all the columns; otherwise returns `false`.

See also setFirstColumnSpanned().

### `[override virtual protected]` bool QTreeView::isIndexHidden(const QModelIndex &index) const

Reimplements: QAbstractItemView::isIndexHidden(const QModelIndex &index) const.

### bool QTreeView::isRowHidden(int row, const QModelIndex &parent) const

Returns `true` if the item in the given row of the parent is hidden; otherwise returns `false`.

See also setRowHidden() and isColumnHidden().

### `[override virtual protected]` void QTreeView::keyPressEvent(QKeyEvent *event)

Reimplements: QAbstractItemView::keyPressEvent(QKeyEvent *event).

### `[override virtual]` void QTreeView::keyboardSearch(const QString &search)

Reimplements: QAbstractItemView::keyboardSearch(const QString &search).

### `[override virtual protected]` void QTreeView::mouseDoubleClickEvent(QMouseEvent *event)

Reimplements: QAbstractItemView::mouseDoubleClickEvent(QMouseEvent *event).

### `[override virtual protected]` void QTreeView::mouseMoveEvent(QMouseEvent *event)

Reimplements: QAbstractItemView::mouseMoveEvent(QMouseEvent *event).

### `[override virtual protected]` void QTreeView::mousePressEvent(QMouseEvent *event)

Reimplements: QAbstractItemView::mousePressEvent(QMouseEvent *event).

### `[override virtual protected]` void QTreeView::mouseReleaseEvent(QMouseEvent *event)

Reimplements: QAbstractItemView::mouseReleaseEvent(QMouseEvent *event).

### `[override virtual protected]` QModelIndex QTreeView::moveCursor(QAbstractItemView::CursorAction cursorAction, Qt::KeyboardModifiers modifiers)

Reimplements: QAbstractItemView::moveCursor(QAbstractItemView::CursorAction cursorAction, Qt::KeyboardModifiers modifiers).

Move the cursor in the way described by cursorAction, using the information provided by the button modifiers.

### `[override virtual protected]` void QTreeView::paintEvent(QPaintEvent *event)

Reimplements: QAbstractScrollArea::paintEvent(QPaintEvent *event).

### `[override virtual]` void QTreeView::reset()

Reimplements: QAbstractItemView::reset().

### `[slot]` void QTreeView::resizeColumnToContents(int column)

Resizes the column given to the size of its contents.

See also columnWidth(), setColumnWidth(), sizeHintForColumn(), and QHeaderView::resizeContentsPrecision().

### `[protected]` int QTreeView::rowHeight(const QModelIndex &index) const

Returns the height of the row indicated by the given index.

See also indexRowSizeHint().

### `[override virtual protected]` void QTreeView::rowsAboutToBeRemoved(const QModelIndex &parent, int start, int end)

Reimplements: QAbstractItemView::rowsAboutToBeRemoved(const QModelIndex &parent, int start, int end).

Informs the view that the rows from the start row to the end row inclusive are about to removed from the given parent model item.

### `[override virtual protected]` void QTreeView::rowsInserted(const QModelIndex &parent, int start, int end)

Reimplements: QAbstractItemView::rowsInserted(const QModelIndex &parent, int start, int end).

Informs the view that the rows from the start row to the end row inclusive have been inserted into the parent model item.

### `[protected slot]` void QTreeView::rowsRemoved(const QModelIndex &parent, int start, int end)

Informs the view that the rows from the start row to the end row inclusive have been removed from the given parent model item.

### `[override virtual protected]` void QTreeView::scrollContentsBy(int dx, int dy)

Reimplements: QAbstractScrollArea::scrollContentsBy(int dx, int dy).

Scrolls the contents of the tree view by (dx, dy).

### `[override virtual]` void QTreeView::scrollTo(const QModelIndex &index, QAbstractItemView::ScrollHint hint = EnsureVisible)

Reimplements: QAbstractItemView::scrollTo(const QModelIndex &index, QAbstractItemView::ScrollHint hint).

Scroll the contents of the tree view until the given model item index is visible. The hint parameter specifies more precisely where the item should be located after the operation. If any of the parents of the model item are collapsed, they will be expanded to ensure that the model item is visible.

### `[override virtual]` void QTreeView::selectAll()

Reimplements: QAbstractItemView::selectAll().

### `[override virtual protected]` QModelIndexList QTreeView::selectedIndexes() const

Reimplements: QAbstractItemView::selectedIndexes() const.

### `[override virtual protected]` void QTreeView::selectionChanged(const QItemSelection &selected, const QItemSelection &deselected)

Reimplements: QAbstractItemView::selectionChanged(const QItemSelection &selected, const QItemSelection &deselected).

### void QTreeView::setColumnHidden(int column, bool hide)

If hide is true the column is hidden, otherwise the column is shown.

See also isColumnHidden(), hideColumn(), and setRowHidden().

### void QTreeView::setColumnWidth(int column, int width)

Sets the width of the given column to the width specified.

See also columnWidth() and resizeColumnToContents().

### void QTreeView::setExpanded(const QModelIndex &index, bool expanded)

Sets the item referred to by index to either collapse or expanded, depending on the value of expanded.

See also expanded(), expand(), and isExpanded().

### void QTreeView::setFirstColumnSpanned(int row, const QModelIndex &parent, bool span)

If span is true the item in the first column in the row with the given parent is set to span all columns, otherwise all items on the row are shown.

See also isFirstColumnSpanned().

### void QTreeView::setHeader(QHeaderView *header)

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 QAbstractItemModel::headerData().

### `[override virtual]` void QTreeView::setModel(QAbstractItemModel *model)

Reimplements: QAbstractItemView::setModel(QAbstractItemModel *model).

### `[override virtual]` void QTreeView::setRootIndex(const QModelIndex &index)

Reimplements: QAbstractItemView::setRootIndex(const QModelIndex &index).

### void QTreeView::setRowHidden(int row, const QModelIndex &parent, bool hide)

If hide is true the row with the given parent is hidden, otherwise the row is shown.

See also isRowHidden() and setColumnHidden().

### `[override virtual protected]` void QTreeView::setSelection(const QRect &rect, QItemSelectionModel::SelectionFlags command)

Reimplements: QAbstractItemView::setSelection(const QRect &rect, QItemSelectionModel::SelectionFlags flags).

Applies the selection command to the items in or touched by the rectangle, rect.

See also selectionCommand().

### `[override virtual]` void QTreeView::setSelectionModel(QItemSelectionModel *selectionModel)

Reimplements: QAbstractItemView::setSelectionModel(QItemSelectionModel *selectionModel).

### void QTreeView::setTreePosition(int index)

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 treePosition(), QHeaderView::swapSections(), and QHeaderView::moveSection().

### `[slot]` void QTreeView::showColumn(int column)

Shows the given column in the tree view.

See also hideColumn() and setColumnHidden().

### `[override virtual protected]` int QTreeView::sizeHintForColumn(int column) const

Reimplements: QAbstractItemView::sizeHintForColumn(int column) const.

Returns the size hint for the column's width or -1 if there is no model.

If you need to set the width of a given column to a fixed value, call QHeaderView::resizeSection() on the view's header.

If you reimplement this function in a subclass, note that the value you return is only used when resizeColumnToContents() is called. In that case, if a larger column width is required by either the view's header or the item delegate, that width will be used instead.

See also QWidget::sizeHint, header(), and QHeaderView::resizeContentsPrecision().

### `[slot]` void QTreeView::sortByColumn(int column, Qt::SortOrder order)

Sorts the model by the values in the given column and order.

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.

### `[override virtual protected]` void QTreeView::timerEvent(QTimerEvent *event)

Reimplements: QAbstractItemView::timerEvent(QTimerEvent *event).

### int QTreeView::treePosition() const

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 setTreePosition().

### `[override virtual protected]` void QTreeView::updateGeometries()

Reimplements: QAbstractItemView::updateGeometries().

### `[override virtual protected]` int QTreeView::verticalOffset() const

Reimplements: QAbstractItemView::verticalOffset() const.

Returns the vertical offset of the items in the tree view.

See also horizontalOffset().

### `[override virtual protected]` bool QTreeView::viewportEvent(QEvent *event)

Reimplements: QAbstractItemView::viewportEvent(QEvent *event).

### `[override virtual protected]` QSize QTreeView::viewportSizeHint() const

Reimplements: QAbstractItemView::viewportSizeHint() const.

### `[override virtual]` QRect QTreeView::visualRect(const QModelIndex &index) const

Reimplements: QAbstractItemView::visualRect(const QModelIndex &index) const.

Returns the rectangle on the viewport occupied by the item at index. If the index is not visible or explicitly hidden, the returned rectangle is invalid.

### `[override virtual protected]` QRegion QTreeView::visualRegionForSelection(const QItemSelection &selection) const

Reimplements: QAbstractItemView::visualRegionForSelection(const QItemSelection &selection) const.

Returns the rectangle from the viewport of the items in the given selection.

Since 4.7, the returned region only contains rectangles intersecting (or included in) the viewport.