|  | Home · All Classes · Modules

# QHeaderView Class Reference
[QtGui module]

The QHeaderView class provides a header row or header column for item views. More...

Inherits QAbstractItemView.

### Types

- enum ResizeMode { Interactive, Fixed, Stretch, ResizeToContents, Custom }

### Methods

- __init__ (self, Qt.Orientation orientation, QWidget parent = None)
- bool cascadingSectionResizes (self)
- int count (self)
- currentChanged (self, QModelIndex current, QModelIndex old)
- dataChanged (self, QModelIndex topLeft, QModelIndex bottomRight)
- Qt.Alignment defaultAlignment (self)
- int defaultSectionSize (self)
- doItemsLayout (self)
- bool event (self, QEvent e)
- headerDataChanged (self, Qt.Orientation orientation, int logicalFirst, int logicalLast)
- int hiddenSectionCount (self)
- hideSection (self, int alogicalIndex)
- bool highlightSections (self)
- int horizontalOffset (self)
- QModelIndex indexAt (self, QPoint p)
- initialize (self)
- initializeSections (self)
- initializeSections (self, int start, int end)
- initStyleOption (self, QStyleOptionHeader option)
- bool isClickable (self)
- bool isIndexHidden (self, QModelIndex index)
- bool isMovable (self)
- bool isSectionHidden (self, int logicalIndex)
- bool isSortIndicatorShown (self)
- int length (self)
- int logicalIndex (self, int visualIndex)
- int logicalIndexAt (self, int position)
- int logicalIndexAt (self, int ax, int ay)
- int logicalIndexAt (self, QPoint apos)
- int minimumSectionSize (self)
- mouseDoubleClickEvent (self, QMouseEvent e)
- mouseMoveEvent (self, QMouseEvent e)
- mousePressEvent (self, QMouseEvent e)
- mouseReleaseEvent (self, QMouseEvent e)
- QModelIndex moveCursor (self, QAbstractItemView.CursorAction, Qt.KeyboardModifiers)
- moveSection (self, int from, int to)
- int offset (self)
- Qt.Orientation orientation (self)
- paintEvent (self, QPaintEvent e)
- paintSection (self, QPainter painter, QRect rect, int logicalIndex)
- reset (self)
- ResizeMode resizeMode (self, int logicalIndex)
- resizeSection (self, int logicalIndex, int size)
- resizeSections (self)
- resizeSections (self, ResizeMode mode)
- bool restoreState (self, QByteArray state)
- rowsInserted (self, QModelIndex parent, int start, int end)
- QByteArray saveState (self)
- scrollContentsBy (self, int dx, int dy)
- scrollTo (self, QModelIndex index, QAbstractItemView.ScrollHint hint)
- int sectionPosition (self, int logicalIndex)
- sectionsAboutToBeRemoved (self, QModelIndex parent, int logicalFirst, int logicalLast)
- bool sectionsHidden (self)
- sectionsInserted (self, QModelIndex parent, int logicalFirst, int logicalLast)
- int sectionSize (self, int logicalIndex)
- QSize sectionSizeFromContents (self, int logicalIndex)
- int sectionSizeHint (self, int logicalIndex)
- bool sectionsMoved (self)
- int sectionViewportPosition (self, int logicalIndex)
- setCascadingSectionResizes (self, bool enable)
- setClickable (self, bool clickable)
- setDefaultAlignment (self, Qt.Alignment alignment)
- setDefaultSectionSize (self, int size)
- setHighlightSections (self, bool highlight)
- setMinimumSectionSize (self, int size)
- setModel (self, QAbstractItemModel model)
- setMovable (self, bool movable)
- setOffset (self, int offset)
- setOffsetToLastSection (self)
- setOffsetToSectionPosition (self, int visualIndex)
- setResizeMode (self, ResizeMode mode)
- setResizeMode (self, int logicalIndex, ResizeMode mode)
- setSectionHidden (self, int logicalIndex, bool hide)
- setSelection (self, QRect, QItemSelectionModel.SelectionFlags)
- setSortIndicator (self, int logicalIndex, Qt.SortOrder order)
- setSortIndicatorShown (self, bool show)
- setStretchLastSection (self, bool stretch)
- showSection (self, int alogicalIndex)
- QSize sizeHint (self)
- Qt.SortOrder sortIndicatorOrder (self)
- int sortIndicatorSection (self)
- bool stretchLastSection (self)
- int stretchSectionCount (self)
- swapSections (self, int first, int second)
- updateGeometries (self)
- updateSection (self, int logicalIndex)
- int verticalOffset (self)
- bool viewportEvent (self, QEvent e)
- int visualIndex (self, int logicalIndex)
- int visualIndexAt (self, int position)
- QRect visualRect (self, QModelIndex index)
- QRegion visualRegionForSelection (self, QItemSelection selection)

### Qt Signals

- void geometriesChanged ()
- void sectionAutoResize (int,QHeaderView::ResizeMode)
- void sectionClicked (int)
- void sectionCountChanged (int,int)
- void sectionDoubleClicked (int)
- void sectionEntered (int)
- void sectionHandleDoubleClicked (int)
- void sectionMoved (int,int,int)
- void sectionPressed (int)
- void sectionResized (int,int,int)
- void sortIndicatorChanged (int,Qt::SortOrder)

## Detailed Description

The QHeaderView class provides a header row or header column for item views.

A QHeaderView displays the headers used in item views such as the QTableView and QTreeView classes. It takes the place of the `QHeader` class previously used for the same purpose, but uses the Qt's model/view architecture for consistency with the item view classes.

The QHeaderView class is one of the Model/View Classes and is part of Qt's model/view framework.

The header gets the data for each section from the model using the QAbstractItemModel.headerData() function. You can set the data by using QAbstractItemModel.setHeaderData().

Each header has an orientation() and a number of sections, given by the count() 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 using moveSection() and resizeSection(); they can also be hidden and shown with hideSection() and showSection().

Each section of a header is described by a section ID, specified by its section(), and can be located at a particular visualIndex() in the header. A section can have a sort indicator set with setSortIndicator(); 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.

### Moving Header Sections

A header can be fixed in place, or made movable with setMovable(). It can be made clickable with setClickable(), and has resizing behavior in accordance with setResizeMode().

A header emits sectionMoved() if the user moves a section, sectionResized() if the user resizes a section, and sectionClicked() and sectionHandleDoubleClicked() in response to mouse clicks. A header also emits sectionCountChanged() and sectionAutoResize().

You can identify a section using the logicalIndex() and logicalIndexAt() functions, or by its index position, using the visualIndex() and visualIndexAt() functions. The visual index will change if a section is moved, but the logical index will not change.

### Appearance

QTableWidget and QTableView create default headers. If you want the headers to be visible, you can use setVisible().

Not all ItemDataRoles will have an effect on a QHeaderView. If you need to draw other roles, you can subclass QHeaderView and reimplement paintEvent(). QHeaderView respects the following item data roles: TextAlignmentRole, DisplayRole, FontRole, DecorationRole, ForegroundRole, and BackgroundRole.

Note: Each header renders the data for each section itself, and does not rely on a delegate. As a result, calling a header's setItemDelegate() function will have no effect.

See also Model/View Programming, QListView, QTableView, and QTreeView.

## Type Documentation

### QHeaderView.ResizeMode

The resize mode specifies the behavior of the header sections. It can be set on the entire header view or on individual sections using setResizeMode().

Constant | Value | Description
--- | --- | ---
`QHeaderView.Interactive` | `0` | The user can resize the section. The section can also be resized programmatically using resizeSection(). The section size defaults to defaultSectionSize. (See also cascadingSectionResizes.)
`QHeaderView.Fixed` | `2` | The user cannot resize the section. The section can only be resized programmatically using resizeSection(). The section size defaults to defaultSectionSize.
`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 also setResizeMode(), stretchLastSection, and minimumSectionSize.

## Method Documentation

### QHeaderView.__init__ (self, Qt.Orientation orientation, QWidget parent = None)

The parent argument, if not None, causes self to be owned by Qt instead of PyQt.

Creates a new generic header with the given orientation and parent.

### bool QHeaderView.cascadingSectionResizes (self)

### int QHeaderView.count (self)

Returns the number of sections in the header.

See also sectionCountChanged() and length().

### QHeaderView.currentChanged (self, QModelIndex current, QModelIndex old)

### QHeaderView.dataChanged (self, QModelIndex topLeft, QModelIndex bottomRight)

### Qt.Alignment QHeaderView.defaultAlignment (self)

### int QHeaderView.defaultSectionSize (self)

### QHeaderView.doItemsLayout (self)

### bool QHeaderView.event (self, QEvent e)

### QHeaderView.headerDataChanged (self, Qt.Orientation orientation, int logicalFirst, int logicalLast)

This method is also a Qt slot with the C++ signature `void headerDataChanged(Qt::Orientation,int,int)`.

Updates the changed header sections with the given orientation, from logicalFirst to logicalLast inclusive.

### int QHeaderView.hiddenSectionCount (self)

Returns the number of sections in the header that has been hidden.

This function was introduced in Qt 4.1.

See also setSectionHidden() and isSectionHidden().

### QHeaderView.hideSection (self, int alogicalIndex)

Hides the section specified by logicalIndex.

See also showSection(), isSectionHidden(), hiddenSectionCount(), and setSectionHidden().

### bool QHeaderView.highlightSections (self)

### int QHeaderView.horizontalOffset (self)

Returns the horizontal offset of the header. This is 0 for vertical headers.

Reimplemented from QAbstractItemView.

See also offset().

### QModelIndex QHeaderView.indexAt (self, QPoint p)

### QHeaderView.initialize (self)

### QHeaderView.initializeSections (self)

### QHeaderView.initializeSections (self, int start, int end)

### QHeaderView.initStyleOption (self, QStyleOptionHeader option)

Initialize option with the values from this QHeaderView. This method is useful for subclasses when they need a QStyleOptionHeader, but don't want to fill in all the information themselves.

See also QStyleOption.initFrom().

### bool QHeaderView.isClickable (self)

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 also setClickable().

### bool QHeaderView.isIndexHidden (self, QModelIndex index)

### bool QHeaderView.isMovable (self)

Returns true if the header can be moved by the user; otherwise returns false.

See also setMovable().

### bool QHeaderView.isSectionHidden (self, int logicalIndex)

Returns true if the section specified by logicalIndex is explicitly hidden from the user; otherwise returns false.

See also hideSection(), showSection(), setSectionHidden(), and hiddenSectionCount().

### bool QHeaderView.isSortIndicatorShown (self)

### int QHeaderView.length (self)

Returns the length along the orientation of the header.

See also sizeHint(), setResizeMode(), and offset().

### int QHeaderView.logicalIndex (self, int visualIndex)

Returns the logicalIndex for the section at the given visualIndex position, or -1 otherwise.

See also visualIndex() and sectionPosition().

### int QHeaderView.logicalIndexAt (self, int position)

Returns the section that covers the given position in the viewport.

See also visualIndexAt() and isSectionHidden().

### int QHeaderView.logicalIndexAt (self, int ax, int ay)

This is an overloaded member function, provided for convenience.

Returns the logical index of the section at the given coordinate. If the header is horizontal x will be used, otherwise y will be used to find the logical index.

### int QHeaderView.logicalIndexAt (self, QPoint apos)

This is an overloaded member function, provided for convenience.

Returns the logical index of the section at the position given in pos. If the header is horizontal the x-coordinate will be used to find the logical index; otherwise the y-coordinate will be used.

See also sectionPosition().

### int QHeaderView.minimumSectionSize (self)

### QHeaderView.mouseDoubleClickEvent (self, QMouseEvent e)

### QHeaderView.mouseMoveEvent (self, QMouseEvent e)

### QHeaderView.mousePressEvent (self, QMouseEvent e)

### QHeaderView.mouseReleaseEvent (self, QMouseEvent e)

### QModelIndex QHeaderView.moveCursor (self, QAbstractItemView.CursorAction, Qt.KeyboardModifiers)

### QHeaderView.moveSection (self, int from, int to)

Moves the section at visual index from to occupy visual index to.

See also sectionsMoved().

### int QHeaderView.offset (self)

Returns the offset of the header: this is the header's left-most (or top-most for vertical headers) visible pixel.

See also setOffset().

### Qt.Orientation QHeaderView.orientation (self)

Returns the orientation of the header.

See also Qt.Orientation.

### QHeaderView.paintEvent (self, QPaintEvent e)

### QHeaderView.paintSection (self, QPainter painter, QRect rect, int logicalIndex)

Paints the section specified by the given logicalIndex, using the given painter and rect.

You normally would not need to use this function.

### QHeaderView.reset (self)

### ResizeMode QHeaderView.resizeMode (self, int logicalIndex)

Returns the resize mode that applies to the section specified by the given logicalIndex.

See also setResizeMode().

### QHeaderView.resizeSection (self, int logicalIndex, int size)

Resizes the section specified by logicalIndex to the size measured in pixels.

See also sectionResized(), resizeMode(), and sectionSize().

### QHeaderView.resizeSections (self)

This method is also a Qt slot with the C++ signature `void resizeSections()`.

Resizes the sections according to the given mode, ignoring the current resize mode.

See also resizeMode() and sectionResized().

### QHeaderView.resizeSections (self, ResizeMode mode)

This is an overloaded member function, provided for convenience.

Resizes the sections according to their size hints. You should not normally need to call this function.

### bool QHeaderView.restoreState (self, QByteArray state)

Restores the state of this header view. This function returns `true` if the state was restored, otherwise returns false.

This function was introduced in Qt 4.3.

See also saveState().

### QHeaderView.rowsInserted (self, QModelIndex parent, int start, int end)

### QByteArray QHeaderView.saveState (self)

Saves the current state of this header view.

To restore the saved state, pass the return value to restoreState().

This function was introduced in Qt 4.3.

See also restoreState().

### QHeaderView.scrollContentsBy (self, int dx, int dy)

### QHeaderView.scrollTo (self, QModelIndex index, QAbstractItemView.ScrollHint hint)

### int QHeaderView.sectionPosition (self, int logicalIndex)

Returns the section position of the given logicalIndex, or -1 if the section is hidden.

See also sectionViewportPosition().

### QHeaderView.sectionsAboutToBeRemoved (self, QModelIndex parent, int logicalFirst, int logicalLast)

This method is also a Qt slot with the C++ signature `void sectionsAboutToBeRemoved(const QModelIndex&,int,int)`.

This slot is called when sections are removed from the parent, logicalFirst and logicalLast signify where the sections are removed from. (logicalFirst and logicalLast will be the same if just one section is removed.)

### bool QHeaderView.sectionsHidden (self)

Returns true if sections in the header has been hidden; otherwise returns false;

This function was introduced in Qt 4.1.

See also setSectionHidden().

### QHeaderView.sectionsInserted (self, QModelIndex parent, int logicalFirst, int logicalLast)

This method is also a Qt slot with the C++ signature `void sectionsInserted(const QModelIndex&,int,int)`.

This slot is called when sections are inserted into the parent, logicalFirst and logicalLast indexes signify where the new sections are inserted.

logicalFirst and logicalLast will be the same if just one section is inserted.

### int QHeaderView.sectionSize (self, int logicalIndex)

Returns the width (or height for vertical headers) of the given logicalIndex.

See also length(), setResizeMode(), and defaultSectionSize().

### QSize QHeaderView.sectionSizeFromContents (self, int logicalIndex)

Returns the size of the contents of the section specified by the give logicalIndex.

See also defaultSectionSize().

### int QHeaderView.sectionSizeHint (self, int logicalIndex)

Returns a suitable size hint for the section specified by logicalIndex.

See also sizeHint(), defaultSectionSize(), minimumSectionSize(), and Qt.SizeHintRole.

### bool QHeaderView.sectionsMoved (self)

Returns true if sections in the header has been moved; otherwise returns false;

See also moveSection().

### int QHeaderView.sectionViewportPosition (self, int logicalIndex)

Returns the section viewport position of the given logicalIndex.

If the section is hidden, this function returns an undefined value.

See also sectionPosition() and isSectionHidden().

### QHeaderView.setCascadingSectionResizes (self, bool enable)

### QHeaderView.setClickable (self, bool clickable)

If clickable is true, the header will respond to single clicks.

See also isClickable(), sectionClicked(), sectionPressed(), and setSortIndicatorShown().

### QHeaderView.setDefaultAlignment (self, Qt.Alignment alignment)

### QHeaderView.setDefaultSectionSize (self, int size)

### QHeaderView.setHighlightSections (self, bool highlight)

### QHeaderView.setMinimumSectionSize (self, int size)

### QHeaderView.setModel (self, QAbstractItemModel model)

### QHeaderView.setMovable (self, bool movable)

If movable is true, the header may be moved by the user; otherwise it is fixed in place.

See also isMovable() and sectionMoved().

### QHeaderView.setOffset (self, int offset)

This method is also a Qt slot with the C++ signature `void setOffset(int)`.

Sets the header's offset to offset.

See also offset() and length().

### QHeaderView.setOffsetToLastSection (self)

This method is also a Qt slot with the C++ signature `void setOffsetToLastSection()`.

Sets the offset to make the last section visible.

This function was introduced in Qt 4.2.

See also setOffset(), sectionPosition(), and setOffsetToSectionPosition().

### QHeaderView.setOffsetToSectionPosition (self, int visualIndex)

This method is also a Qt slot with the C++ signature `void setOffsetToSectionPosition(int)`.

Sets the offset to the start of the section at the given visualIndex.

This function was introduced in Qt 4.2.

See also setOffset() and sectionPosition().

### QHeaderView.setResizeMode (self, ResizeMode mode)

Sets the constraints on how the header can be resized to those described by the given mode.

See also resizeMode(), length(), sectionResized(), and sectionAutoResize().

### QHeaderView.setResizeMode (self, int logicalIndex, ResizeMode mode)

This is an overloaded member function, provided for convenience.

Sets the constraints on how the section specified by logicalIndex in the header can be resized to those described by the given mode.

### QHeaderView.setSectionHidden (self, int logicalIndex, bool hide)

If hide is true the section specified by logicalIndex is hidden, otherwise the section is shown.

See also isSectionHidden() and hiddenSectionCount().

### QHeaderView.setSelection (self, QRect, QItemSelectionModel.SelectionFlags)

### QHeaderView.setSortIndicator (self, int logicalIndex, Qt.SortOrder order)

Sets the sort indicator for the section specified by the given logicalIndex in the direction specified by order, and removes the sort indicator from any other section that was showing it.

See also sortIndicatorSection() and sortIndicatorOrder().

### QHeaderView.setSortIndicatorShown (self, bool show)

### QHeaderView.setStretchLastSection (self, bool stretch)

### QHeaderView.showSection (self, int alogicalIndex)

Shows the section specified by logicalIndex.

See also hideSection(), isSectionHidden(), hiddenSectionCount(), and setSectionHidden().

### QSize QHeaderView.sizeHint (self)

Returns a suitable size hint for this header.

Reimplemented from QWidget.

See also sectionSizeHint().

### Qt.SortOrder QHeaderView.sortIndicatorOrder (self)

Returns the order for the sort indicator. If no section has a sort indicator the return value of this function is undefined.

See also setSortIndicator() and sortIndicatorSection().

### int QHeaderView.sortIndicatorSection (self)

Returns the logical index of the section that has a sort indicator. By default this is section 0.

See also setSortIndicator(), sortIndicatorOrder(), and setSortIndicatorShown().

### bool QHeaderView.stretchLastSection (self)

### int QHeaderView.stretchSectionCount (self)

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 geometry changes.

This function was introduced in Qt 4.1.

See also stretchLastSection and resizeMode().

### QHeaderView.swapSections (self, int first, int second)

Swaps the section at visual index first with the section at visual index second.

This function was introduced in Qt 4.2.

See also moveSection().

### QHeaderView.updateGeometries (self)

### QHeaderView.updateSection (self, int logicalIndex)

This method is also a Qt slot with the C++ signature `void updateSection(int)`.

### int QHeaderView.verticalOffset (self)

Returns the vertical offset of the header. This is 0 for horizontal headers.

Reimplemented from QAbstractItemView.

See also offset().

### bool QHeaderView.viewportEvent (self, QEvent e)

### int QHeaderView.visualIndex (self, int logicalIndex)

Returns the visual index position of the section specified by the given logicalIndex, or -1 otherwise. Hidden sections still have valid visual indexes.

See also logicalIndex().

### int QHeaderView.visualIndexAt (self, int position)

Returns the visual index of the section that covers the given position in the viewport.

See also logicalIndexAt().

### QRect QHeaderView.visualRect (self, QModelIndex index)

### QRegion QHeaderView.visualRegionForSelection (self, QItemSelection selection)

## Qt Signal Documentation

### void geometriesChanged ()

This signal is emitted when the header geometries has changed.

This function was introduced in Qt 4.2.

### void sectionAutoResize (int,QHeaderView::ResizeMode)

This signal is emitted when a section is automatically resized. The section's logical index is specified by logicalIndex, and the resize mode by mode.

See also setResizeMode() and stretchLastSection().

### void sectionClicked (int)

This signal is emitted when a section is clicked. The section's logical index is specified by logicalIndex.

Note that the sectionPressed signal will also be emitted.

See also setClickable() and sectionPressed().

### void sectionCountChanged (int,int)

This signal is emitted when the number of sections changes; i.e. when sections are added or deleted. The original count is specified by oldCount, and the new count by newCount.

See also count(), length(), and headerDataChanged().

### void sectionDoubleClicked (int)

This signal is emitted when a section is double-clicked. The section's logical index is specified by logicalIndex.

See also setClickable().

### void sectionEntered (int)

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 by logicalIndex.

This function was introduced in Qt 4.3.

See also setClickable() and sectionPressed().

### void sectionHandleDoubleClicked (int)

This signal is emitted when a section is double-clicked. The section's logical index is specified by logicalIndex.

See also setClickable().

### void sectionMoved (int,int,int)

This signal is emitted when a section is moved. The section's logical index is specified by logicalIndex, the old index by oldVisualIndex, and the new index position by newVisualIndex.

See also moveSection().

### void sectionPressed (int)

This signal is emitted when a section is pressed. The section's logical index is specified by logicalIndex.

See also setClickable().

### void sectionResized (int,int,int)

This signal is emitted when a section is resized. The section's logical number is specified by logicalIndex, the old size by oldSize, and the new size by newSize.

See also resizeSection().

### void sortIndicatorChanged (int,Qt::SortOrder)

This signal is emitted when the section containing the sort indicator or the order indicated is changed. The section's logical index is specified by logicalIndex and the sort order is specified by order.

This function was introduced in Qt 4.3.

See also setSortIndicator().