
We bake cookies in your browser for a better experience. Using this site means that you consent.Read More
TheQHeaderView class provides a header row or header column for item views.More...
| Header: | #include <QHeaderView> |
| Inherits: | QAbstractItemView |
| enum | ResizeMode { Interactive, Fixed, Stretch, ResizeToContents, Custom } |
|
|
| QHeaderView(Qt::Orientation orientation, QWidget * parent = 0) | |
| virtual | ~QHeaderView() |
| bool | cascadingSectionResizes() const |
| int | count() const |
| Qt::Alignment | defaultAlignment() const |
| int | defaultSectionSize() const |
| int | hiddenSectionCount() const |
| void | hideSection(int logicalIndex) |
| bool | highlightSections() const |
| bool | isClickable() const |
| bool | isMovable() const |
| bool | isSectionHidden(int logicalIndex) const |
| bool | isSortIndicatorShown() const |
| int | length() const |
| int | logicalIndex(int visualIndex) const |
| int | logicalIndexAt(int position) const |
| int | logicalIndexAt(int x, int y) const |
| int | logicalIndexAt(const QPoint & pos) const |
| int | minimumSectionSize() const |
| void | moveSection(int from, int to) |
| int | offset() const |
| Qt::Orientation | orientation() const |
| ResizeMode | resizeMode(int logicalIndex) const |
| void | resizeSection(int logicalIndex, int size) |
| void | resizeSections(QHeaderView::ResizeMode mode) |
| bool | restoreState(const QByteArray & state) |
| QByteArray | saveState() const |
| int | sectionPosition(int logicalIndex) const |
| int | sectionSize(int logicalIndex) const |
| int | sectionSizeHint(int logicalIndex) const |
| int | sectionViewportPosition(int logicalIndex) const |
| bool | sectionsHidden() const |
| bool | sectionsMoved() const |
| void | setCascadingSectionResizes(bool enable) |
| void | setClickable(bool clickable) |
| void | setDefaultAlignment(Qt::Alignment alignment) |
| void | setDefaultSectionSize(int size) |
| void | setHighlightSections(bool highlight) |
| void | setMinimumSectionSize(int size) |
| void | setMovable(bool movable) |
| void | setResizeMode(ResizeMode mode) |
| void | setResizeMode(int logicalIndex, ResizeMode mode) |
| void | setSectionHidden(int logicalIndex, bool hide) |
| void | setSortIndicator(int logicalIndex, Qt::SortOrder order) |
| void | setSortIndicatorShown(bool show) |
| void | setStretchLastSection(bool stretch) |
| void | showSection(int logicalIndex) |
| Qt::SortOrder | sortIndicatorOrder() const |
| int | sortIndicatorSection() const |
| bool | stretchLastSection() const |
| int | stretchSectionCount() const |
| void | swapSections(int first, int second) |
| int | visualIndex(int logicalIndex) const |
| int | visualIndexAt(int position) const |
| void | headerDataChanged(Qt::Orientation orientation, int logicalFirst, int logicalLast) |
| void | setOffset(int offset) |
| void | setOffsetToLastSection() |
| void | setOffsetToSectionPosition(int visualIndex) |
| void | geometriesChanged() |
| void | sectionAutoResize(int logicalIndex, QHeaderView::ResizeMode mode) |
| void | sectionClicked(int logicalIndex) |
| void | sectionCountChanged(int oldCount, int newCount) |
| void | sectionDoubleClicked(int logicalIndex) |
| void | sectionEntered(int logicalIndex) |
| void | sectionHandleDoubleClicked(int logicalIndex) |
| void | sectionMoved(int logicalIndex, int oldVisualIndex, int newVisualIndex) |
| void | sectionPressed(int logicalIndex) |
| void | sectionResized(int logicalIndex, int oldSize, int newSize) |
| void | sortIndicatorChanged(int logicalIndex, Qt::SortOrder order) |
| void | initStyleOption(QStyleOptionHeader * option) const |
| virtual void | paintSection(QPainter * painter, const QRect & rect, int logicalIndex) const |
| virtual QSize | sectionSizeFromContents(int logicalIndex) const |
| virtual void | currentChanged(const QModelIndex & current, const QModelIndex & old) |
| virtual bool | event(QEvent * e) |
| virtual int | horizontalOffset() const |
| virtual void | mouseDoubleClickEvent(QMouseEvent * e) |
| virtual void | mouseMoveEvent(QMouseEvent * e) |
| virtual void | mousePressEvent(QMouseEvent * e) |
| virtual void | mouseReleaseEvent(QMouseEvent * e) |
| virtual void | paintEvent(QPaintEvent * e) |
| virtual void | setSelection(const QRect & rect, QItemSelectionModel::SelectionFlags flags) |
| virtual int | verticalOffset() const |
| virtual bool | viewportEvent(QEvent * e) |
| void | resizeSections() |
| void | sectionsAboutToBeRemoved(const QModelIndex & parent, int logicalFirst, int logicalLast) |
| void | sectionsInserted(const QModelIndex & parent, int logicalFirst, int logicalLast) |
TheQHeaderView class provides a header row or header column for item views.
AQHeaderView displays the headers used in item views such as theQTableView andQTreeView classes. It takes the place of Qt3'sQHeader class previously used for the same purpose, but uses the Qt's model/view architecture for consistency with the item view classes.
TheQHeaderView class is one of theModel/View Classes and is part of Qt'smodel/view framework.
The header gets the data for each section from the model using theQAbstractItemModel::headerData() function. You can set the data by usingQAbstractItemModel::setHeaderData().
Each header has anorientation() and a number of sections, given by thecount() function. A section refers to a part of the header - either a row or a column, depending on the orientation.
Sections can be moved and resized usingmoveSection() andresizeSection(); they can also be hidden and shown withhideSection() andshowSection().
Each section of a header is described by a section ID, specified by its section(), and can be located at a particularvisualIndex() in the header. A section can have a sort indicator set withsetSortIndicator(); this indicates whether the items in the associated item view will be sorted in the order given by the section.
For a horizontal header the section is equivalent to a column in the model, and for a vertical header the section is equivalent to a row in the model.
A header can be fixed in place, or made movable withsetMovable(). It can be made clickable withsetClickable(), and has resizing behavior in accordance withsetResizeMode().
Note:Double-clicking on a header to resize a section only applies for visible rows.
A header will emitsectionMoved() if the user moves a section,sectionResized() if the user resizes a section, andsectionClicked() as well assectionHandleDoubleClicked() in response to mouse clicks. A header will also emitsectionCountChanged() andsectionAutoResize().
You can identify a section using thelogicalIndex() andlogicalIndexAt() functions, or by its index position, using thevisualIndex() andvisualIndexAt() functions. The visual index will change if a section is moved, but the logical index will not change.
QTableWidget andQTableView create default headers. If you want the headers to be visible, you can usesetVisible().
Not allItemDataRoles will have an effect on aQHeaderView. If you need to draw other roles, you can subclassQHeaderView and reimplementpaintEvent().QHeaderView respects the following item data roles:TextAlignmentRole,DisplayRole,FontRole,DecorationRole,ForegroundRole, andBackgroundRole.
Note:Each header renders the data for each section itself, and does not rely on a delegate. As a result, calling a header'ssetItemDelegate() function will have no effect.
See alsoModel/View Programming,QListView,QTableView, andQTreeView.
The resize mode specifies the behavior of the header sections. It can be set on the entire header view or on individual sections usingsetResizeMode().
| Constant | Value | Description |
|---|---|---|
QHeaderView::Interactive | 0 | The user can resize the section. The section can also be resized programmatically usingresizeSection(). The section size defaults todefaultSectionSize. (See alsocascadingSectionResizes.) |
QHeaderView::Fixed | 2 | The user cannot resize the section. The section can only be resized programmatically usingresizeSection(). The section size defaults todefaultSectionSize. |
QHeaderView::Stretch | 1 | QHeaderView will automatically resize the section to fill the available space. The size cannot be changed by the user or programmatically. |
QHeaderView::ResizeToContents | 3 | QHeaderView will automatically resize the section to its optimal size based on the contents of the entire column or row. The size cannot be changed by the user or programmatically. (This value was introduced in 4.2) |
The following values are obsolete:
| Constant | Value | Description |
|---|---|---|
QHeaderView::Custom | Fixed | Use Fixed instead. |
See alsosetResizeMode(),stretchLastSection, andminimumSectionSize.
This property holds whether interactive resizing will be cascaded to the following sections once the section being resized by the user has reached its minimum size.
This property only affects sections that haveInteractive as their resize mode.
The default value is false.
This property was introduced in Qt 4.2.
Access functions:
| bool | cascadingSectionResizes() const |
| void | setCascadingSectionResizes(bool enable) |
See alsosetResizeMode().
This property holds the default alignment of the text in each header section.
This property was introduced in Qt 4.1.
Access functions:
| Qt::Alignment | defaultAlignment() const |
| void | setDefaultAlignment(Qt::Alignment alignment) |
This property holds the default size of the header sections before resizing.
This property only affects sections that haveInteractive orFixed as their resize mode.
Access functions:
| int | defaultSectionSize() const |
| void | setDefaultSectionSize(int size) |
See alsosetResizeMode() andminimumSectionSize.
This property holds whether the sections containing selected items are highlighted.
By default, this property is false.
Access functions:
| bool | highlightSections() const |
| void | setHighlightSections(bool highlight) |
This property holds the minimum size of the header sections.
The minimum section size is the smallest section size allowed. If the minimum section size is set to -1,QHeaderView will use the maximum of theglobal strut or thefont metrics size.
This property is honored by allresize modes.
This property was introduced in Qt 4.2.
Access functions:
| int | minimumSectionSize() const |
| void | setMinimumSectionSize(int size) |
See alsosetResizeMode() anddefaultSectionSize.
This property holds whether the sort indicator is shown.
By default, this property is false.
Access functions:
| bool | isSortIndicatorShown() const |
| void | setSortIndicatorShown(bool show) |
See alsosetClickable().
This property holds whether the last visible section in the header takes up all the available space.
The default value is false.
Note:The horizontal headers provided byQTreeView are configured with this 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.
Access functions:
| bool | stretchLastSection() const |
| void | setStretchLastSection(bool stretch) |
See alsosetResizeMode().
Creates a new generic header with the givenorientation andparent.
[virtual]QHeaderView::~QHeaderView()Destroys the header.
Returns the number of sections in the header.
See alsosectionCountChanged() andlength().
[virtual protected]void QHeaderView::currentChanged(constQModelIndex & current, constQModelIndex & old)Reimplemented fromQAbstractItemView::currentChanged().
[virtual protected]bool QHeaderView::event(QEvent * e)Reimplemented fromQObject::event().
[signal]void QHeaderView::geometriesChanged()This signal is emitted when the header's geometries have changed.
This function was introduced in Qt 4.2.
[slot]void QHeaderView::headerDataChanged(Qt::Orientation orientation,int logicalFirst,int logicalLast)Updates the changed header sections with the givenorientation, fromlogicalFirst tologicalLast inclusive.
Returns the number of sections in the header that has been hidden.
This function was introduced in Qt 4.1.
See alsosetSectionHidden() andisSectionHidden().
Hides the section specified bylogicalIndex.
See alsoshowSection(),isSectionHidden(),hiddenSectionCount(), andsetSectionHidden().
[virtual protected]int QHeaderView::horizontalOffset() constReimplemented fromQAbstractItemView::horizontalOffset().
Returns the horizontal offset of the header. This is 0 for vertical headers.
See alsooffset().
[protected]void QHeaderView::initStyleOption(QStyleOptionHeader * option) constInitializeoption with the values from thisQHeaderView. This method is useful for subclasses when they need aQStyleOptionHeader, but do not want to fill in all the information themselves.
See alsoQStyleOption::initFrom().
Returns true if the header is clickable; otherwise returns false. A clickable header could be set up to allow the user to change the representation of the data in the view related to the header.
See alsosetClickable().
Returns true if the header can be moved by the user; otherwise returns false.
See alsosetMovable().
Returns true if the section specified bylogicalIndex is explicitly hidden from the user; otherwise returns false.
See alsohideSection(),showSection(),setSectionHidden(), andhiddenSectionCount().
Returns the length along the orientation of the header.
See alsosizeHint(),setResizeMode(), andoffset().
Returns the logicalIndex for the section at the givenvisualIndex position, or -1 ifvisualIndex < 0 orvisualIndex >=QHeaderView::count().
Note that thevisualIndex is not affected by hidden sections.
See alsovisualIndex() andsectionPosition().
Returns the section that covers the givenposition in the viewport.
See alsovisualIndexAt() andisSectionHidden().
Returns the logical index of the section at the given coordinate. If the header is horizontalx will be used, otherwisey will be used to find the logical index.
Returns the logical index of the section at the position given inpos. If the header is horizontal the x-coordinate will be used, otherwise the y-coordinate will be used to find the logical index.
See alsosectionPosition().
[virtual protected]void QHeaderView::mouseDoubleClickEvent(QMouseEvent * e)Reimplemented fromQWidget::mouseDoubleClickEvent().
[virtual protected]void QHeaderView::mouseMoveEvent(QMouseEvent * e)Reimplemented fromQWidget::mouseMoveEvent().
[virtual protected]void QHeaderView::mousePressEvent(QMouseEvent * e)Reimplemented fromQWidget::mousePressEvent().
[virtual protected]void QHeaderView::mouseReleaseEvent(QMouseEvent * e)Reimplemented fromQWidget::mouseReleaseEvent().
Moves the section at visual indexfrom to occupy visual indexto.
See alsosectionsMoved().
Returns the offset of the header: this is the header's left-most (or top-most for vertical headers) visible pixel.
See alsosetOffset().
Returns the orientation of the header.
See alsoQt::Orientation.
[virtual protected]void QHeaderView::paintEvent(QPaintEvent * e)Reimplemented fromQWidget::paintEvent().
[virtual protected]void QHeaderView::paintSection(QPainter * painter, constQRect & rect,int logicalIndex) constPaints the section specified by the givenlogicalIndex, using the givenpainter andrect.
Normally, you do not have to call this function.
[virtual]void QHeaderView::reset()Reimplemented fromQAbstractItemView::reset().
Returns the resize mode that applies to the section specified by the givenlogicalIndex.
See alsosetResizeMode().
Resizes the section specified bylogicalIndex tosize measured in pixels.
See alsosectionResized(),resizeMode(), andsectionSize().
Resizes the sections according to the givenmode, ignoring the current resize mode.
See alsoresizeMode() andsectionResized().
[protected slot]void QHeaderView::resizeSections()Resizes the sections according to their size hints. Normally, you do not have to call this function.
Restores thestate of this header view. This function returnstrue if the state was restored; otherwise returns false.
This function was introduced in Qt 4.3.
See alsosaveState().
Saves the current state of this header view.
To restore the saved state, pass the return value torestoreState().
This function was introduced in Qt 4.3.
See alsorestoreState().
[signal]void QHeaderView::sectionAutoResize(int logicalIndex,QHeaderView::ResizeMode mode)This signal is emitted when a section is automatically resized. The section's logical index is specified bylogicalIndex, and the resize mode bymode.
See alsosetResizeMode() andstretchLastSection().
[signal]void QHeaderView::sectionClicked(int logicalIndex)This signal is emitted when a section is clicked. The section's logical index is specified bylogicalIndex.
Note that thesectionPressed signal will also be emitted.
See alsosetClickable() andsectionPressed().
[signal]void QHeaderView::sectionCountChanged(int oldCount,int newCount)This signal is emitted when the number of sections changes, i.e., when sections are added or deleted. The original count is specified byoldCount, and the new count bynewCount.
See alsocount(),length(), andheaderDataChanged().
[signal]void QHeaderView::sectionDoubleClicked(int logicalIndex)This signal is emitted when a section is double-clicked. The section's logical index is specified bylogicalIndex.
See alsosetClickable().
[signal]void QHeaderView::sectionEntered(int logicalIndex)This signal is emitted when the cursor moves over the section and the left mouse button is pressed. The section's logical index is specified bylogicalIndex.
This function was introduced in Qt 4.3.
See alsosetClickable() andsectionPressed().
[signal]void QHeaderView::sectionHandleDoubleClicked(int logicalIndex)This signal is emitted when a section is double-clicked. The section's logical index is specified bylogicalIndex.
See alsosetClickable().
[signal]void QHeaderView::sectionMoved(int logicalIndex,int oldVisualIndex,int newVisualIndex)This signal is emitted when a section is moved. The section's logical index is specified bylogicalIndex, the old index byoldVisualIndex, and the new index position bynewVisualIndex.
See alsomoveSection().
Returns the section position of the givenlogicalIndex, or -1 if the section is hidden. The position is measured in pixels from the first visible item's top-left corner to the top-left corner of the item withlogicalIndex. The measurement is along the x-axis for horizontal headers and along the y-axis for vertical headers.
See alsosectionViewportPosition().
[signal]void QHeaderView::sectionPressed(int logicalIndex)This signal is emitted when a section is pressed. The section's logical index is specified bylogicalIndex.
See alsosetClickable().
[signal]void QHeaderView::sectionResized(int logicalIndex,int oldSize,int newSize)This signal is emitted when a section is resized. The section's logical number is specified bylogicalIndex, the old size byoldSize, and the new size bynewSize.
See alsoresizeSection().
Returns the width (or height for vertical headers) of the givenlogicalIndex.
See alsolength(),setResizeMode(), anddefaultSectionSize().
[virtual protected]QSize QHeaderView::sectionSizeFromContents(int logicalIndex) constReturns the size of the contents of the section specified by the givenlogicalIndex.
See alsodefaultSectionSize().
Returns a suitable size hint for the section specified bylogicalIndex.
See alsosizeHint(),defaultSectionSize(),minimumSectionSize(), andQt::SizeHintRole.
Returns the section viewport position of the givenlogicalIndex.
If the section is hidden, the return value is undefined.
See alsosectionPosition() andisSectionHidden().
[protected slot]void QHeaderView::sectionsAboutToBeRemoved(constQModelIndex & parent,int logicalFirst,int logicalLast)This slot is called when sections are removed from theparent.logicalFirst andlogicalLast signify where the sections were removed.
If only one section is removed,logicalFirst andlogicalLast will be the same.
Returns true if sections in the header has been hidden; otherwise returns false;
This function was introduced in Qt 4.1.
See alsosetSectionHidden().
[protected slot]void QHeaderView::sectionsInserted(constQModelIndex & parent,int logicalFirst,int logicalLast)This slot is called when sections are inserted into theparent.logicalFirst andlogicalLast indices signify where the new sections were inserted.
If only one section is inserted,logicalFirst andlogicalLast will be the same.
Returns true if sections in the header has been moved; otherwise returns false;
See alsomoveSection().
Ifclickable is true, the header will respond to single clicks.
See alsoisClickable(),sectionClicked(),sectionPressed(), andsetSortIndicatorShown().
[virtual]void QHeaderView::setModel(QAbstractItemModel * model)Reimplemented fromQAbstractItemView::setModel().
Ifmovable is true, the header may be moved by the user; otherwise it is fixed in place.
See alsoisMovable() andsectionMoved().
[slot]void QHeaderView::setOffset(int offset)Sets the header's offset tooffset.
[slot]void QHeaderView::setOffsetToLastSection()Sets the offset to make the last section visible.
This function was introduced in Qt 4.2.
See alsosetOffset(),sectionPosition(), andsetOffsetToSectionPosition().
[slot]void QHeaderView::setOffsetToSectionPosition(int visualIndex)Sets the offset to the start of the section at the givenvisualIndex.
This function was introduced in Qt 4.2.
See alsosetOffset() andsectionPosition().
Sets the constraints on how the header can be resized to those described by the givenmode.
See alsoresizeMode(),length(),sectionResized(), andsectionAutoResize().
This is an overloaded function.
Sets the constraints on how the section specified bylogicalIndex in the header can be resized to those described by the givenmode. The logical index should exist at the time this function is called.
Note:This setting will be ignored for the last section if thestretchLastSection property is set to true. This is the default for the horizontal headers provided byQTreeView.
See alsosetStretchLastSection().
Ifhide is true the section specified bylogicalIndex is hidden; otherwise the section is shown.
See alsoisSectionHidden() andhiddenSectionCount().
[virtual protected]void QHeaderView::setSelection(constQRect & rect,QItemSelectionModel::SelectionFlags flags)Reimplemented fromQAbstractItemView::setSelection().
Selects the items in the givenrect according to the specifiedflags.
The base class implementation does nothing.
Sets the sort indicator for the section specified by the givenlogicalIndex in the direction specified byorder, and removes the sort indicator from any other section that was showing it.
logicalIndex 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 alsosortIndicatorSection() andsortIndicatorOrder().
Shows the section specified bylogicalIndex.
See alsohideSection(),isSectionHidden(),hiddenSectionCount(), andsetSectionHidden().
[virtual]QSize QHeaderView::sizeHint() constReimplemented fromQWidget::sizeHint().
Returns a suitable size hint for this header.
See alsosectionSizeHint().
[signal]void QHeaderView::sortIndicatorChanged(int logicalIndex,Qt::SortOrder order)This signal is emitted when the section containing the sort indicator or the order indicated is changed. The section's logical index is specified bylogicalIndex and the sort order is specified byorder.
This function was introduced in Qt 4.3.
See alsosetSortIndicator().
Returns the order for the sort indicator. If no section has a sort indicator the return value of this function is undefined.
See alsosetSortIndicator() andsortIndicatorSection().
Returns the logical index of the section that has a sort indicator. By default this is section 0.
See alsosetSortIndicator(),sortIndicatorOrder(), andsetSortIndicatorShown().
Returns the number of sections that are set to resize mode stretch. In views, this can be used to see if the headerview needs to resize the sections when the view's geometry changes.
This function was introduced in Qt 4.1.
See alsostretchLastSection andresizeMode().
Swaps the section at visual indexfirst with the section at visual indexsecond.
This function was introduced in Qt 4.2.
See alsomoveSection().
[virtual protected]int QHeaderView::verticalOffset() constReimplemented fromQAbstractItemView::verticalOffset().
Returns the vertical offset of the header. This is 0 for horizontal headers.
See alsooffset().
[virtual protected]bool QHeaderView::viewportEvent(QEvent * e)Reimplemented fromQAbstractScrollArea::viewportEvent().
Returns the visual index position of the section specified by the givenlogicalIndex, or -1 otherwise.
Hidden sections still have valid visual indexes.
See alsologicalIndex().
Returns the visual index of the section that covers the givenposition in the viewport.
See alsologicalIndexAt().
© 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.