
We bake cookies in your browser for a better experience. Using this site means that you consent.Read More
TheQTreeView class provides a default model/view implementation of a tree view.More...
| Header: | #include <QTreeView> |
| Inherits: | QAbstractItemView |
| Inherited By: |
|
|
| QTreeView(QWidget * parent = 0) | |
| ~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 |
| 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 | setUniformRowHeights(bool uniform) |
| void | setWordWrap(bool on) |
| void | sortByColumn(int column, Qt::SortOrder order) |
| bool | uniformRowHeights() const |
| bool | wordWrap() const |
| virtual void | dataChanged(const QModelIndex & topLeft, const QModelIndex & bottomRight) |
| virtual QModelIndex | indexAt(const QPoint & point) const |
| virtual void | keyboardSearch(const QString & search) |
| virtual void | reset() |
| virtual void | scrollTo(const QModelIndex & index, ScrollHint hint = EnsureVisible) |
| virtual void | selectAll() |
| virtual void | setModel(QAbstractItemModel * model) |
| virtual void | setRootIndex(const QModelIndex & index) |
| virtual void | setSelectionModel(QItemSelectionModel * selectionModel) |
| virtual QRect | visualRect(const QModelIndex & index) const |
| void | collapse(const QModelIndex & index) |
| void | collapseAll() |
| void | expand(const QModelIndex & index) |
| void | expandAll() |
| void | expandToDepth(int depth) |
| void | hideColumn(int column) |
| void | resizeColumnToContents(int column) |
| void | showColumn(int column) |
| 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 |
| virtual void | currentChanged(const QModelIndex & current, const QModelIndex & previous) |
| virtual void | dragMoveEvent(QDragMoveEvent * event) |
| virtual int | horizontalOffset() const |
| virtual bool | isIndexHidden(const QModelIndex & index) const |
| virtual void | keyPressEvent(QKeyEvent * event) |
| virtual void | mouseDoubleClickEvent(QMouseEvent * event) |
| virtual void | mouseMoveEvent(QMouseEvent * event) |
| virtual void | mousePressEvent(QMouseEvent * event) |
| virtual void | mouseReleaseEvent(QMouseEvent * event) |
| virtual QModelIndex | moveCursor(CursorAction cursorAction, Qt::KeyboardModifiers modifiers) |
| virtual void | paintEvent(QPaintEvent * event) |
| virtual void | rowsAboutToBeRemoved(const QModelIndex & parent, int start, int end) |
| virtual void | rowsInserted(const QModelIndex & parent, int start, int end) |
| virtual void | scrollContentsBy(int dx, int dy) |
| virtual QModelIndexList | selectedIndexes() const |
| virtual void | selectionChanged(const QItemSelection & selected, const QItemSelection & deselected) |
| virtual void | setSelection(const QRect & rect, QItemSelectionModel::SelectionFlags command) |
| virtual int | sizeHintForColumn(int column) const |
| virtual void | timerEvent(QTimerEvent * event) |
| virtual void | updateGeometries() |
| virtual int | verticalOffset() const |
| virtual bool | viewportEvent(QEvent * event) |
| virtual QRegion | visualRegionForSelection(const QItemSelection & selection) const |
| 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) |
TheQTreeView class provides a default model/view implementation of a tree view.
AQTreeView 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.
TheQTreeView class is one of theModel/View Classes and is part of Qt'smodel/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 aQFileSystemModel and displayed as a tree:
QFileSystemModel*model=newQFileSystemModel; model->setRootPath(QDir::currentPath());QTreeView*tree=newQTreeView(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 acollapsed() 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 theindentation property.
Headers in tree views are constructed using theQHeaderView 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.
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 LeftArrow. |
| Right | Reveals the children of the current item (if present) by expanding a branch. |
| Plus | Same as RightArrow. |
| Asterisk | Expands all children of the current item (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. |
![]() | ![]() | ![]() |
| AWindows XP style tree view. | AMacintosh style tree view. | APlastique style tree view. |
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 theuniformRowHeights property to true.
See alsoQListView,QTreeWidget,View Classes,QAbstractItemModel,QAbstractItemView, andDir View Example.
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.
This property was introduced in Qt 4.2.
Access functions:
| bool | allColumnsShowFocus() const |
| void | setAllColumnsShowFocus(bool enable) |
This property holds whether animations are enabled.
If this property is true the treeview will animate expandsion and collasping 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.
This property was introduced in Qt 4.2.
Access functions:
| bool | isAnimated() const |
| void | setAnimated(bool enable) |
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.
This property was introduced in Qt 4.3.
Access functions:
| int | autoExpandDelay() const |
| void | setAutoExpandDelay(int delay) |
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.
This property was introduced in Qt 4.4.
Access functions:
| bool | expandsOnDoubleClick() const |
| void | setExpandsOnDoubleClick(bool enable) |
See alsoitemsExpandable.
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.
This property was introduced in Qt 4.4.
Access functions:
| bool | isHeaderHidden() const |
| void | setHeaderHidden(bool hide) |
See alsoheader().
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, this property has a value of 20.
Access functions:
| int | indentation() const |
| void | setIndentation(int i) |
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) |
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) |
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 enabledafter inserting the items into the tree. Alternatively, you could also insert the items into a list before inserting the items into the tree.
This property was introduced in Qt 4.2.
Access functions:
| bool | isSortingEnabled() const |
| void | setSortingEnabled(bool enable) |
See alsosortByColumn().
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.
By default, this property is false.
Access functions:
| bool | uniformRowHeights() const |
| void | setUniformRowHeights(bool uniform) |
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 currenttextElideMode.
This property was introduced in Qt 4.3.
Access functions:
| bool | wordWrap() const |
| void | setWordWrap(bool on) |
Constructs a tree view with aparent to represent a model's data. UsesetModel() to set the model.
See alsoQAbstractItemModel.
Destroys the tree view.
[slot]void QTreeView::collapse(constQModelIndex & index)Collapses the model item specified by theindex.
See alsocollapsed().
[slot]void QTreeView::collapseAll()Collapses all expanded items.
This function was introduced in Qt 4.2.
See alsoexpandAll(),expand(),collapse(), andsetExpanded().
[signal]void QTreeView::collapsed(constQModelIndex & index)This signal is emitted when the item specified byindex is collapsed.
Returns the column in the tree view whose header covers thex 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 fromoldCount tonewCount.
[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 whenevercolumn's size is changed in the header.oldSize andnewSize give the previous size and the new size in pixels.
See alsosetColumnWidth().
Returns the horizontal position of thecolumn in the viewport.
Returns the width of thecolumn.
See alsoresizeColumnToContents() andsetColumnWidth().
[virtual protected]void QTreeView::currentChanged(constQModelIndex & current, constQModelIndex & previous)Reimplemented fromQAbstractItemView::currentChanged().
[virtual]void QTreeView::dataChanged(constQModelIndex & topLeft, constQModelIndex & bottomRight)Reimplemented fromQAbstractItemView::dataChanged().
[virtual protected]void QTreeView::dragMoveEvent(QDragMoveEvent * event)Reimplemented fromQWidget::dragMoveEvent().
[virtual protected]void QTreeView::drawBranches(QPainter * painter, constQRect & rect, constQModelIndex & index) constDraws the branches in the tree view on the same row as the model itemindex, using thepainter given. The branches are drawn in the rectangle specified byrect.
[virtual protected]void QTreeView::drawRow(QPainter * painter, constQStyleOptionViewItem & option, constQModelIndex & index) constDraws the row in the tree view that contains the model itemindex, using thepainter given. Theoption control how the item is displayed.
See alsosetAlternatingRowColors().
[protected]void QTreeView::drawTree(QPainter * painter, constQRegion & region) constDraws the part of the tree intersecting the givenregion using the specifiedpainter.
This function was introduced in Qt 4.2.
See alsopaintEvent().
[slot]void QTreeView::expand(constQModelIndex & index)Expands the model item specified by theindex.
See alsoexpanded().
[slot]void QTreeView::expandAll()Expands all expandable items.
Warning: if the model contains a large number of items, this function will take some time to execute.
This function was introduced in Qt 4.2.
See alsocollapseAll(),expand(),collapse(), andsetExpanded().
[slot]void QTreeView::expandToDepth(int depth)Expands all expandable items to the givendepth.
This function was introduced in Qt 4.3.
See alsoexpandAll(),collapseAll(),expand(),collapse(), andsetExpanded().
[signal]void QTreeView::expanded(constQModelIndex & index)This signal is emitted when the item specified byindex is expanded.
See alsosetExpanded().
Returns the header for the tree view.
See alsosetHeader() andQAbstractItemModel::headerData().
[slot]void QTreeView::hideColumn(int column)Hides thecolumn 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 hidecolumn.
See alsoshowColumn() andsetColumnHidden().
[virtual protected]int QTreeView::horizontalOffset() constReimplemented fromQAbstractItemView::horizontalOffset().
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 alsoverticalOffset().
Returns the model index of the item aboveindex.
[virtual]QModelIndex QTreeView::indexAt(constQPoint & point) constReimplemented fromQAbstractItemView::indexAt().
Returns the model index of the item belowindex.
[protected]int QTreeView::indexRowSizeHint(constQModelIndex & index) constReturns the size hint for the row indicated byindex.
See alsosizeHintForColumn() anduniformRowHeights().
Returns true if thecolumn is hidden; otherwise returns false.
See alsohideColumn() andisRowHidden().
Returns true if the model itemindex is expanded; otherwise returns false.
See alsoexpand(),expanded(), andsetExpanded().
Returns true if the item in first column in the givenrow of theparent is spanning all the columns; otherwise returns false.
This function was introduced in Qt 4.3.
See alsosetFirstColumnSpanned().
[virtual protected]bool QTreeView::isIndexHidden(constQModelIndex & index) constReimplemented fromQAbstractItemView::isIndexHidden().
Returns true if the item in the givenrow of theparent is hidden; otherwise returns false.
See alsosetRowHidden() andisColumnHidden().
[virtual protected]void QTreeView::keyPressEvent(QKeyEvent * event)Reimplemented fromQWidget::keyPressEvent().
[virtual]void QTreeView::keyboardSearch(constQString & search)Reimplemented fromQAbstractItemView::keyboardSearch().
[virtual protected]void QTreeView::mouseDoubleClickEvent(QMouseEvent * event)Reimplemented fromQWidget::mouseDoubleClickEvent().
[virtual protected]void QTreeView::mouseMoveEvent(QMouseEvent * event)Reimplemented fromQWidget::mouseMoveEvent().
[virtual protected]void QTreeView::mousePressEvent(QMouseEvent * event)Reimplemented fromQWidget::mousePressEvent().
[virtual protected]void QTreeView::mouseReleaseEvent(QMouseEvent * event)Reimplemented fromQWidget::mouseReleaseEvent().
[virtual protected]QModelIndex QTreeView::moveCursor(CursorAction cursorAction,Qt::KeyboardModifiers modifiers)Reimplemented fromQAbstractItemView::moveCursor().
Move the cursor in the way described bycursorAction, using the information provided by the buttonmodifiers.
[virtual protected]void QTreeView::paintEvent(QPaintEvent * event)Reimplemented fromQWidget::paintEvent().
[virtual]void QTreeView::reset()Reimplemented fromQAbstractItemView::reset().
[slot]void QTreeView::resizeColumnToContents(int column)Resizes thecolumn given to the size of its contents.
See alsocolumnWidth() andsetColumnWidth().
[protected]int QTreeView::rowHeight(constQModelIndex & index) constReturns the height of the row indicated by the givenindex.
This function was introduced in Qt 4.3.
See alsoindexRowSizeHint().
[virtual protected]void QTreeView::rowsAboutToBeRemoved(constQModelIndex & parent,int start,int end)Reimplemented fromQAbstractItemView::rowsAboutToBeRemoved().
Informs the view that the rows from thestart row to theend row inclusive are about to removed from the givenparent model item.
[virtual protected]void QTreeView::rowsInserted(constQModelIndex & parent,int start,int end)Reimplemented fromQAbstractItemView::rowsInserted().
Informs the view that the rows from thestart row to theend row inclusive have been inserted into theparent model item.
[protected slot]void QTreeView::rowsRemoved(constQModelIndex & parent,int start,int end)Informs the view that the rows from thestart row to theend row inclusive have been removed from the givenparent model item.
This function was introduced in Qt 4.1.
[virtual protected]void QTreeView::scrollContentsBy(int dx,int dy)Reimplemented fromQAbstractScrollArea::scrollContentsBy().
Scrolls the contents of the tree view by (dx,dy).
[virtual]void QTreeView::scrollTo(constQModelIndex & index,ScrollHint hint = EnsureVisible)Reimplemented fromQAbstractItemView::scrollTo().
Scroll the contents of the tree view until the given model itemindex is visible. Thehint 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.
[virtual]void QTreeView::selectAll()Reimplemented fromQAbstractItemView::selectAll().
[virtual protected]QModelIndexList QTreeView::selectedIndexes() constReimplemented fromQAbstractItemView::selectedIndexes().
[virtual protected]void QTreeView::selectionChanged(constQItemSelection & selected, constQItemSelection & deselected)Reimplemented fromQAbstractItemView::selectionChanged().
Ifhide is true thecolumn is hidden, otherwise thecolumn is shown.
See alsoisColumnHidden(),hideColumn(), andsetRowHidden().
Sets the width of the givencolumn to thewidth specified.
This function was introduced in Qt 4.2.
See alsocolumnWidth() andresizeColumnToContents().
Sets the item referred to byindex to either collapse or expanded, depending on the value ofexpanded.
See alsoexpanded(),expand(), andisExpanded().
Ifspan 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.
This function was introduced in Qt 4.3.
See alsoisFirstColumnSpanned().
Sets the header for the tree view, to the givenheader.
The view takes ownership over the givenheader and deletes it when a new header is set.
See alsoQAbstractItemModel::headerData().
[virtual]void QTreeView::setModel(QAbstractItemModel * model)Reimplemented fromQAbstractItemView::setModel().
[virtual]void QTreeView::setRootIndex(constQModelIndex & index)Reimplemented fromQAbstractItemView::setRootIndex().
Ifhide is true therow with the givenparent is hidden, otherwise therow is shown.
See alsoisRowHidden() andsetColumnHidden().
[virtual protected]void QTreeView::setSelection(constQRect & rect,QItemSelectionModel::SelectionFlags command)Reimplemented fromQAbstractItemView::setSelection().
Applies the selectioncommand to the items in or touched by the rectangle,rect.
See alsoselectionCommand().
[virtual]void QTreeView::setSelectionModel(QItemSelectionModel * selectionModel)Reimplemented fromQAbstractItemView::setSelectionModel().
[slot]void QTreeView::showColumn(int column)Shows the givencolumn in the tree view.
See alsohideColumn() andsetColumnHidden().
[virtual protected]int QTreeView::sizeHintForColumn(int column) constReimplemented fromQAbstractItemView::sizeHintForColumn().
Returns the size hint for thecolumn's width or -1 if there is no model.
If you need to set the width of a given column to a fixed value, callQHeaderView::resizeSection() on the view's header.
If you reimplement this function in a subclass, note that the value you return is only used whenresizeColumnToContents() 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 alsoQWidget::sizeHint andheader().
Sets the model up for sorting by the values in the givencolumn 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.
This function was introduced in Qt 4.2.
See alsosortingEnabled.
[virtual protected]void QTreeView::timerEvent(QTimerEvent * event)Reimplemented fromQObject::timerEvent().
[virtual protected]void QTreeView::updateGeometries()Reimplemented fromQAbstractItemView::updateGeometries().
[virtual protected]int QTreeView::verticalOffset() constReimplemented fromQAbstractItemView::verticalOffset().
Returns the vertical offset of the items in the tree view.
See alsohorizontalOffset().
[virtual protected]bool QTreeView::viewportEvent(QEvent * event)Reimplemented fromQAbstractScrollArea::viewportEvent().
[virtual]QRect QTreeView::visualRect(constQModelIndex & index) constReimplemented fromQAbstractItemView::visualRect().
Returns the rectangle on the viewport occupied by the item atindex. If the index is not visible or explicitly hidden, the returned rectangle is invalid.
[virtual protected]QRegion QTreeView::visualRegionForSelection(constQItemSelection & selection) constReimplemented fromQAbstractItemView::visualRegionForSelection().
Returns the rectangle from the viewport of the items in the givenselection.
Since 4.7, the returned region only contains rectangles intersecting (or included in) the viewport.
© 2016 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 theGNU 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.