En esta página

QHeaderView Class

La clase QHeaderView proporciona una fila o columna de cabecera para las vistas de elementos. Más...

Cabecera: #include <QHeaderView>
CMake: find_package(Qt6 REQUIRED COMPONENTS Widgets)
target_link_libraries(mytarget PRIVATE Qt6::Widgets)
qmake: QT += widgets
Hereda: QAbstractItemView

Tipos públicos

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

Propiedades

Funciones públicas

QHeaderView(Qt::Orientation orientation, QWidget *parent = nullptr)
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 isFirstSectionMovable() const
bool isSectionHidden(int logicalIndex) const
bool isSortIndicatorClearable() const
bool isSortIndicatorShown() const
int length() const
int logicalIndex(int visualIndex) const
int logicalIndexAt(const QPoint &pos) const
int logicalIndexAt(int position) const
int logicalIndexAt(int x, int y) const
int maximumSectionSize() const
int minimumSectionSize() const
void moveSection(int from, int to)
int offset() const
Qt::Orientation orientation() const
void resetDefaultSectionSize()
int resizeContentsPrecision() 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
QHeaderView::ResizeMode sectionResizeMode(int logicalIndex) const
int sectionSize(int logicalIndex) const
int sectionSizeHint(int logicalIndex) const
int sectionViewportPosition(int logicalIndex) const
bool sectionsClickable() const
bool sectionsHidden() const
bool sectionsMovable() const
bool sectionsMoved() const
void setCascadingSectionResizes(bool enable)
void setDefaultAlignment(Qt::Alignment alignment)
void setDefaultSectionSize(int size)
void setFirstSectionMovable(bool movable)
void setHighlightSections(bool highlight)
void setMaximumSectionSize(int size)
void setMinimumSectionSize(int size)
void setResizeContentsPrecision(int precision)
void setSectionHidden(int logicalIndex, bool hide)
void setSectionResizeMode(QHeaderView::ResizeMode mode)
void setSectionResizeMode(int logicalIndex, QHeaderView::ResizeMode mode)
void setSectionsClickable(bool clickable)
void setSectionsMovable(bool movable)
void setSortIndicator(int logicalIndex, Qt::SortOrder order)
void setSortIndicatorClearable(bool clearable)
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

Funciones públicas reimplementadas

virtual void reset() override
virtual void setModel(QAbstractItemModel *model) override
virtual void setVisible(bool v) override
virtual QSize sizeHint() const override

Ranuras públicas

void headerDataChanged(Qt::Orientation orientation, int logicalFirst, int logicalLast)
void setOffset(int offset)
void setOffsetToLastSection()
void setOffsetToSectionPosition(int visualSectionNumber)

Señales

void geometriesChanged()
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 sortIndicatorClearableChanged(bool clearable)

Funciones protegidas

virtual void initStyleOption(QStyleOptionHeader *option) const
(since 6.0) virtual void initStyleOptionForIndex(QStyleOptionHeader *option, int logicalIndex) const
virtual void paintSection(QPainter *painter, const QRect &rect, int logicalIndex) const
virtual QSize sectionSizeFromContents(int logicalIndex) const

Funciones protegidas reimplementadas

virtual void currentChanged(const QModelIndex &current, const QModelIndex &old) override
virtual bool event(QEvent *e) override
virtual int horizontalOffset() const override
virtual void mouseDoubleClickEvent(QMouseEvent *e) override
virtual void mouseMoveEvent(QMouseEvent *e) override
virtual void mousePressEvent(QMouseEvent *e) override
virtual void mouseReleaseEvent(QMouseEvent *e) override
virtual void paintEvent(QPaintEvent *e) override
virtual void setSelection(const QRect &rect, QItemSelectionModel::SelectionFlags flags) override
virtual int verticalOffset() const override
virtual bool viewportEvent(QEvent *e) override

Ranuras protegidas

void resizeSections()
void sectionsAboutToBeRemoved(const QModelIndex &parent, int logicalFirst, int logicalLast)
void sectionsInserted(const QModelIndex &parent, int logicalFirst, int logicalLast)

Descripción Detallada

Un QHeaderView muestra las cabeceras utilizadas en las vistas de elementos como las clases QTableView y QTreeView. Ocupa el lugar de la clase QHeader de Qt3 utilizada anteriormente para el mismo propósito, pero utiliza la arquitectura modelo/vista de Qt para mantener la coherencia con las clases de vistas de elementos.

La clase QHeaderView es una de las clases modelo/vista y forma parte del marco modelo/vista de Qt.

La cabecera obtiene los datos de cada sección del modelo utilizando la función QAbstractItemModel::headerData(). Puede establecer los datos utilizando QAbstractItemModel::setHeaderData().

Cada cabecera tiene un orientation() y un número de secciones, dado por la función count(). Una sección se refiere a una parte de la cabecera, ya sea una fila o una columna, dependiendo de la orientación.

Las secciones pueden moverse y cambiar de tamaño con moveSection() y resizeSection(); también pueden ocultarse y mostrarse con hideSection() y showSection().

Cada sección de una cabecera se describe mediante un ID de sección, especificado por su section(), y puede ubicarse en un visualIndex() concreto de la cabecera. Una sección puede tener un indicador de ordenación establecido con setSortIndicator(); esto indica si los elementos de la vista de elementos asociada se ordenarán en el orden dado por la sección.

Para una cabecera horizontal, la sección equivale a una columna en el modelo, y para una cabecera vertical, la sección equivale a una fila en el modelo.

Mover secciones de cabecera

Una cabecera puede fijarse en su lugar o moverse con setSectionsMovable(). Se puede hacer clic en ella con setSectionsClickable(), y tiene un comportamiento de redimensionamiento de acuerdo con setSectionResizeMode().

Nota: Hacer doble clic en una cabecera para redimensionar una sección sólo se aplica a las filas visibles.

Una cabecera emitirá sectionMoved() si el usuario mueve una sección, sectionResized() si el usuario redimensiona una sección, y sectionClicked() así como sectionHandleDoubleClicked() en respuesta a los clics del ratón. Una cabecera también emitirá sectionCountChanged().

Puede identificar una sección mediante las funciones logicalIndex() y logicalIndexAt(), o por su posición en el índice, mediante las funciones visualIndex() y visualIndexAt(). El índice visual cambiará si se mueve una sección, pero el índice lógico no cambiará.

Las funciones

QTableWidget y QTableView crean cabeceras por defecto. Si desea que las cabeceras sean visibles, puede utilizar setVisible().

No todos los ItemDataRoles tendrán efecto en un QHeaderView. Si necesita dibujar otras funciones, puede subclasificar QHeaderView y reimplementar paintEvent(). QHeaderView respeta los siguientes roles de datos de elementos, a menos que estén en conflicto con el estilo (lo que puede ocurrir para estilos que siguen el tema del escritorio):

TextAlignmentRole, DisplayRole, FontRole, DecorationRole, ForegroundRole, y BackgroundRole.

Nota: Cada cabecera renderiza los datos de cada sección por sí misma, y no depende de un delegado. Como resultado, llamar a la función setItemDelegate() de una cabecera no tendrá ningún efecto.

Consideraciones especiales para modelos de gran tamaño

La vista de cabecera utiliza de 8 a 16 bytes de memoria por sección. Sin embargo, desde Qt 6.9 esta memoria de sección sólo se utiliza si una o más secciones se redimensionan o reordenan. Esto significa que es posible que un modelo tenga millones de secciones sin que QHeaderView consuma una cantidad proporcional, y por tanto enorme, de memoria, siempre que no haya llamadas a swapSections, resizeSection, hideSection, moveSection, y stretchLastSection (habilitándolo). Para evitar dichas llamadas por acciones del usuario el resize mode debería ser Fixed (sin especificarlo para ningún índice, ya que eso hará lo contrario). También debe evitarse que el usuario mueva secciones manteniendo deshabilitado sectionsMovable.

Ver también Programación Modelo/Vista, QListView, QTableView, y QTreeView.

Documentación de tipos de miembros

enum QHeaderView::ResizeMode

El modo de redimensionamiento especifica el comportamiento de las secciones de cabecera. Puede establecerse en toda la vista de cabecera o en secciones individuales utilizando setSectionResizeMode().

ConstanteValorDescripción
QHeaderView::Interactive0El usuario puede redimensionar la sección. La sección también se puede redimensionar mediante programación utilizando resizeSection(). El tamaño de la sección es por defecto defaultSectionSize. (Véase también cascadingSectionResizes.)
QHeaderView::Fixed2El usuario no puede cambiar el tamaño de la sección. La sección sólo se puede redimensionar mediante programación utilizando resizeSection(). El tamaño por defecto de la sección es defaultSectionSize.
QHeaderView::Stretch1QHeaderView redimensionará automáticamente la sección para llenar el espacio disponible. El tamaño no puede ser modificado por el usuario o mediante programación.
QHeaderView::ResizeToContents3QHeaderView redimensionará automáticamente la sección a su tamaño óptimo basándose en el contenido de toda la columna o fila. El tamaño no puede ser modificado por el usuario ni mediante programación. (Este valor se introdujo en 4.2)

Los siguientes valores son obsoletos:

ConstanteValorDescripción
QHeaderView::CustomFixedUtilice Fixed en su lugar.

Véase también setSectionResizeMode(), stretchLastSection, y minimumSectionSize.

Documentación de propiedades

cascadingSectionResizes : bool

Esta propiedad determina si el redimensionamiento interactivo se aplicará en cascada a las secciones siguientes una vez que la sección que está siendo redimensionada por el usuario haya alcanzado su tamaño mínimo.

Esta propiedad sólo afecta a las secciones que tienen Interactive como modo de redimensionamiento.

El valor por defecto es false.

Funciones de acceso:

bool cascadingSectionResizes() const
void setCascadingSectionResizes(bool enable)

Véase también setSectionResizeMode().

defaultAlignment : Qt::Alignment

Esta propiedad contiene la alineación por defecto del texto en cada sección de cabecera

Funciones de acceso:

Qt::Alignment defaultAlignment() const
void setDefaultAlignment(Qt::Alignment alignment)

defaultSectionSize : int

Esta propiedad mantiene el tamaño por defecto de las secciones de cabecera antes de redimensionarlas.

Esta propiedad sólo afecta a las secciones que tienen Interactive o Fixed como modo de redimensionamiento.

Por defecto, el valor de esta propiedad depende del estilo. Así, cuando el estilo cambia, esta propiedad se actualiza a partir de él. Llamar a setDefaultSectionSize() detiene las actualizaciones, llamar a resetDefaultSectionSize() restaurará el comportamiento por defecto.

Funciones de acceso:

int defaultSectionSize() const
void setDefaultSectionSize(int size)
void resetDefaultSectionSize()

Véase también setSectionResizeMode() y minimumSectionSize.

firstSectionMovable : bool

Esta propiedad controla si la primera columna puede ser movida por el usuario

Esta propiedad controla si la primera columna puede ser movida por el usuario. En QTreeView, la primera columna contiene la estructura de árbol y, por tanto, no es movible por defecto, incluso después de setSectionsMovable(true).

Se puede volver a hacer movible, por ejemplo en el caso de listas planas sin estructura de árbol, llamando a este método. En tal caso, se recomienda llamar también a QTreeView::setRootIsDecorated(false).

treeView->setRootIsDecorated(false);
treeView->header()->setFirstSectionMovable(true);

Establecerlo en true no tiene ningún efecto a menos que también se llame a setSectionsMovable(true).

Funciones de acceso:

bool isFirstSectionMovable() const
void setFirstSectionMovable(bool movable)

Véase también setSectionsMovable().

highlightSections : bool

Esta propiedad indica si las secciones que contienen elementos seleccionados están resaltadas.

Por defecto, esta propiedad es false.

Funciones de acceso:

bool highlightSections() const
void setHighlightSections(bool highlight)

maximumSectionSize : int

Esta propiedad contiene el tamaño máximo de las secciones de cabecera.

El tamaño máximo de sección es el mayor tamaño de sección permitido. El valor por defecto de esta propiedad es 1048575, que es también el mayor tamaño posible para una sección. Establecer el valor máximo a -1 restablecerá el valor al tamaño de sección más grande.

A excepción de stretch, esta propiedad es respetada por todas las funciones de resize modes

funciones de acceso:

int maximumSectionSize() const
void setMaximumSectionSize(int size)

Véase también setSectionResizeMode() y defaultSectionSize.

minimumSectionSize : int

Esta propiedad contiene el tamaño mínimo de las secciones de cabecera.

El tamaño mínimo de sección es el menor tamaño de sección permitido. Si el tamaño mínimo de sección es -1, QHeaderView utilizará el tamaño de font metrics.

Esta propiedad es respetada por todos los resize modes.

Funciones de acceso:

int minimumSectionSize() const
void setMinimumSectionSize(int size)

Véase también setSectionResizeMode() y defaultSectionSize.

sectionsClickable : bool

Indica true si se puede hacer clic en la cabecera; en caso contrario, indica false. Un encabezado clicable podría configurarse para permitir al usuario cambiar la representación de los datos en la vista relacionada con el encabezado.

Funciones de acceso:

bool sectionsClickable() const
void setSectionsClickable(bool clickable)

Véase también sectionPressed() y setSortIndicatorShown().

sectionsMovable : bool

Si sectionsMovable es verdadero, las secciones de cabecera pueden ser movidas por el usuario; en caso contrario, quedan fijas en su sitio.

Cuando se utiliza en combinación con QTreeView, la primera columna no es móvil (ya que contiene la estructura de árbol), por defecto. Puede hacerla movible con setFirstSectionMovable(true).

Funciones de acceso:

bool sectionsMovable() const
void setSectionsMovable(bool movable)

Véase también sectionMoved() y setFirstSectionMovable().

showSortIndicator : bool

Esta propiedad indica si se muestra el indicador de ordenación

Por defecto, esta propiedad es false.

Funciones de acceso:

bool isSortIndicatorShown() const
void setSortIndicatorShown(bool show)

Véase también setSectionsClickable().

[since 6.1] sortIndicatorClearable : bool

Esta propiedad controla si se puede eliminar el indicador de ordenación pulsando sobre una sección varias veces

Esta propiedad controla si el usuario puede eliminar el indicador de ordenación en una sección dada haciendo clic en la sección varias veces. Normalmente, al hacer clic en una sección simplemente se cambia el orden de clasificación de esa sección. Estableciendo esta propiedad a true, el indicador de ordenación se borrará después de alternar entre ascendente y descendente; esto normalmente restaurará la ordenación original de un modelo.

Establecer esta propiedad a true no tiene efecto a menos que sectionsClickable() sea también true (que es el valor por defecto para ciertas vistas, por ejemplo QTableView, o se establece automáticamente al hacer una vista ordenable, por ejemplo llamando a QTreeView::setSortingEnabled).

Esta propiedad se introdujo en Qt 6.1.

Funciones de acceso:

bool isSortIndicatorClearable() const
void setSortIndicatorClearable(bool clearable)

Señal de notificador:

void sortIndicatorClearableChanged(bool clearable)

stretchLastSection : bool

Esta propiedad indica si la última sección visible de la cabecera ocupa todo el espacio disponible.

El valor por defecto es false.

Nota: Las cabeceras horizontales proporcionadas por QTreeView están configuradas con esta propiedad a true, asegurando que la vista no desperdicia nada del espacio que se le ha asignado para su cabecera. Si se establece este valor a true, esta propiedad anulará el modo de redimensionamiento establecido en la última sección de la cabecera.

Funciones de acceso:

bool stretchLastSection() const
void setStretchLastSection(bool stretch)

Véase también setSectionResizeMode().

Documentación de las funciones miembro

[explicit] QHeaderView::QHeaderView(Qt::Orientation orientation, QWidget *parent = nullptr)

Crea una nueva cabecera genérica con los datos orientation y parent.

[virtual noexcept] QHeaderView::~QHeaderView()

Destruye la cabecera.

int QHeaderView::count() const

Devuelve el número de secciones de la cabecera.

Véase también sectionCountChanged() y length().

[override virtual protected] void QHeaderView::currentChanged(const QModelIndex &current, const QModelIndex &old)

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

[override virtual protected] bool QHeaderView::event(QEvent *e)

Reimplementa: QAbstractItemView::event(QEvent *event).

[signal] void QHeaderView::geometriesChanged()

Esta señal se emite cuando las geometrías de la cabecera han cambiado.

[slot] void QHeaderView::headerDataChanged(Qt::Orientation orientation, int logicalFirst, int logicalLast)

Actualiza las secciones de cabecera modificadas con la dirección orientation, desde logicalFirst hasta logicalLast inclusive.

int QHeaderView::hiddenSectionCount() const

Devuelve el número de secciones de la cabecera que se han ocultado.

Véase también setSectionHidden() y isSectionHidden().

void QHeaderView::hideSection(int logicalIndex)

Oculta la sección especificada por logicalIndex.

Véase también showSection(), isSectionHidden(), hiddenSectionCount() y setSectionHidden().

[override virtual protected] int QHeaderView::horizontalOffset() const

Reimplementa: QAbstractItemView::horizontalOffset() const.

Devuelve el desplazamiento horizontal de la cabecera. Es 0 para cabeceras verticales.

Véase también offset().

[virtual protected] void QHeaderView::initStyleOption(QStyleOptionHeader *option) const

Inicializa option con los valores de este QHeaderView. Este método es útil para las subclases cuando necesitan un QStyleOptionHeader, pero no quieren rellenar toda la información ellas mismas.

Véase también QStyleOption::initFrom() y initStyleOptionForIndex().

[virtual protected, since 6.0] void QHeaderView::initStyleOptionForIndex(QStyleOptionHeader *option, int logicalIndex) const

Inicializa el estilo option a partir del especificado logicalIndex. Esta función es llamada por la implementación por defecto de paintSection después de que initStyleOption haya sido llamada.

Esta función se introdujo en Qt 6.0.

Véase también paintSection() y initStyleOption().

bool QHeaderView::isSectionHidden(int logicalIndex) const

Devuelve true si la sección especificada por logicalIndex está explícitamente oculta al usuario; en caso contrario devuelve false.

Véase también hideSection(), showSection(), setSectionHidden() y hiddenSectionCount().

int QHeaderView::length() const

Devuelve la longitud a lo largo de la orientación de la cabecera.

Véase también sizeHint(), setSectionResizeMode() y offset().

int QHeaderView::logicalIndex(int visualIndex) const

Devuelve el logicalIndex de la sección en la posición visualIndex dada, o -1 si visualIndex < 0 o visualIndex >= QHeaderView::count().

Tenga en cuenta que visualIndex no se ve afectado por las secciones ocultas.

Véase también visualIndex() y sectionPosition().

int QHeaderView::logicalIndexAt(const QPoint &pos) const

Devuelve el índice lógico de la sección en la posición dada en pos. Si la cabecera es horizontal se utilizará la coordenada x, en caso contrario se utilizará la coordenada y para encontrar el índice lógico.

Véase también sectionPosition().

int QHeaderView::logicalIndexAt(int position) const

Devuelve la sección que cubre el position dado en la ventana gráfica.

Véase también visualIndexAt() y isSectionHidden().

int QHeaderView::logicalIndexAt(int x, int y) const

Devuelve el índice lógico de la sección en la coordenada dada. Si la cabecera es horizontal se utilizará x, en caso contrario se utilizará y para encontrar el índice lógico.

[override virtual protected] void QHeaderView::mouseDoubleClickEvent(QMouseEvent *e)

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

[override virtual protected] void QHeaderView::mouseMoveEvent(QMouseEvent *e)

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

[override virtual protected] void QHeaderView::mousePressEvent(QMouseEvent *e)

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

[override virtual protected] void QHeaderView::mouseReleaseEvent(QMouseEvent *e)

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

void QHeaderView::moveSection(int from, int to)

Mueve la sección en el índice visual from para ocupar el índice visual to.

Véase también sectionsMoved().

int QHeaderView::offset() const

Devuelve el desplazamiento de la cabecera: es el píxel visible más a la izquierda (o más arriba para cabeceras verticales) de la cabecera.

Véase también setOffset().

Qt::Orientation QHeaderView::orientation() const

Devuelve la orientación de la cabecera.

Véase también Qt::Orientation.

[override virtual protected] void QHeaderView::paintEvent(QPaintEvent *e)

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

[virtual protected] void QHeaderView::paintSection(QPainter *painter, const QRect &rect, int logicalIndex) const

Pinta la sección especificada por logicalIndex, utilizando painter y rect.

Normalmente, no es necesario llamar a esta función.

[override virtual] void QHeaderView::reset()

Reimplementa: QAbstractItemView::reset().

int QHeaderView::resizeContentsPrecision() const

Devuelve la precisión con la que QHeaderView calculará en ResizeToContents.

Véase también setResizeContentsPrecision() y setSectionResizeMode().

void QHeaderView::resizeSection(int logicalIndex, int size)

Cambia el tamaño de la sección especificada por logicalIndex a size medido en píxeles. El parámetro size debe tener un valor mayor o igual que cero. Sin embargo, no se recomienda un tamaño igual a cero. En ese caso, debería utilizarse hideSection en su lugar.

Véase también sectionResized(), sectionSize(), y hideSection().

[protected slot] void QHeaderView::resizeSections()

Cambia el tamaño de las secciones según sus sugerencias de tamaño. Normalmente, no es necesario llamar a esta función.

Nota: Esta ranura está sobrecargada. Para conectarse a esta ranura:

// Connect using qOverload:
connect(sender, &SenderClass::signal,
        headerView, qOverload<>(&QHeaderView::resizeSections));

// Or using a lambda as wrapper:
connect(sender, &SenderClass::signal,
        headerView, [receiver = headerView]() { receiver->resizeSections(); });
Para más ejemplos y enfoques, véase conectar con ranuras sobrecargadas.

void QHeaderView::resizeSections(QHeaderView::ResizeMode mode)

Redimensiona las secciones de acuerdo con la dirección mode, ignorando el modo de redimensionado actual.

Véase también sectionResized().

bool QHeaderView::restoreState(const QByteArray &state)

Restaura el state de esta vista de cabecera. Esta función devuelve true si se ha restaurado el estado; en caso contrario devuelve false.

Véase también saveState().

QByteArray QHeaderView::saveState() const

Guarda el estado actual de esta vista de cabecera.

Para restaurar el estado guardado, pase el valor de retorno a restoreState().

Véase también restoreState().

[signal] void QHeaderView::sectionClicked(int logicalIndex)

Esta señal se emite cuando se hace clic en una sección. El índice lógico de la sección se especifica en logicalIndex.

Tenga en cuenta que también se emitirá la señal sectionPressed.

Véase también setSectionsClickable() y sectionPressed().

[signal] void QHeaderView::sectionCountChanged(int oldCount, int newCount)

Esta señal se emite cuando cambia el número de secciones, es decir, cuando se añaden o eliminan secciones. El recuento original se especifica en oldCount, y el nuevo en newCount.

Véase también count(), length() y headerDataChanged().

[signal] void QHeaderView::sectionDoubleClicked(int logicalIndex)

Esta señal se emite cuando se hace doble clic en una sección. El índice lógico de la sección se especifica en logicalIndex.

Véase también setSectionsClickable().

[signal] void QHeaderView::sectionEntered(int logicalIndex)

Esta señal se emite cuando el cursor se desplaza sobre la sección y se pulsa el botón izquierdo del ratón. El índice lógico de la sección se especifica en logicalIndex.

Véase también setSectionsClickable() y sectionPressed().

[signal] void QHeaderView::sectionHandleDoubleClicked(int logicalIndex)

Esta señal se emite cuando se hace doble clic en una sección. El índice lógico de la sección se especifica en logicalIndex.

Véase también setSectionsClickable().

[signal] void QHeaderView::sectionMoved(int logicalIndex, int oldVisualIndex, int newVisualIndex)

Esta señal se emite cuando se mueve una sección. El índice lógico de la sección se especifica mediante logicalIndex, el índice antiguo mediante oldVisualIndex, y la nueva posición del índice mediante newVisualIndex.

Véase también moveSection().

int QHeaderView::sectionPosition(int logicalIndex) const

Devuelve la posición de la sección en logicalIndex, o -1 si la sección está oculta. La posición se mide en píxeles desde la esquina superior izquierda del primer elemento visible hasta la esquina superior izquierda del elemento con logicalIndex. La medición se realiza a lo largo del eje x para cabeceras horizontales y a lo largo del eje y para cabeceras verticales.

Véase también sectionViewportPosition().

[signal] void QHeaderView::sectionPressed(int logicalIndex)

Esta señal se emite cuando se pulsa una sección. El índice lógico de la sección se especifica en logicalIndex.

Véase también setSectionsClickable().

QHeaderView::ResizeMode QHeaderView::sectionResizeMode(int logicalIndex) const

Devuelve el modo de redimensionamiento que se aplica a la sección especificada en logicalIndex.

Véase también setSectionResizeMode().

[signal] void QHeaderView::sectionResized(int logicalIndex, int oldSize, int newSize)

Esta señal se emite cuando se redimensiona una sección. El número lógico de la sección se especifica mediante logicalIndex, el tamaño antiguo mediante oldSize, y el tamaño nuevo mediante newSize.

Véase también resizeSection().

int QHeaderView::sectionSize(int logicalIndex) const

Devuelve la anchura (o altura para cabeceras verticales) de logicalIndex.

Véase también length(), setSectionResizeMode() y defaultSectionSize().

[virtual protected] QSize QHeaderView::sectionSizeFromContents(int logicalIndex) const

Devuelve el tamaño del contenido de la sección especificada en logicalIndex.

Véase también defaultSectionSize().

int QHeaderView::sectionSizeHint(int logicalIndex) const

Devuelve una sugerencia de tamaño adecuado para la sección especificada por logicalIndex.

Qt::SizeHintRole

Véase también sizeHint(), defaultSectionSize(), minimumSectionSize() y maximumSectionSize().

int QHeaderView::sectionViewportPosition(int logicalIndex) const

Devuelve la posición de la sección en la ventana gráfica de logicalIndex.

Si la sección está oculta, el valor devuelto es indefinido.

Véase también sectionPosition() y isSectionHidden().

[protected slot] void QHeaderView::sectionsAboutToBeRemoved(const QModelIndex &parent, int logicalFirst, int logicalLast)

Esta ranura se activa cuando se eliminan secciones de parent. logicalFirst y logicalLast indican dónde se han eliminado las secciones.

Si sólo se elimina una sección, logicalFirst y logicalLast serán iguales.

bool QHeaderView::sectionsClickable() const

Devuelve sectionsClickable.

Nota: Función Getter para la propiedad sectionsClickable.

Véase también setSectionsClickable().

bool QHeaderView::sectionsHidden() const

Devuelve true si se han ocultado secciones de la cabecera; en caso contrario devuelve false;

Véase también setSectionHidden().

[protected slot] void QHeaderView::sectionsInserted(const QModelIndex &parent, int logicalFirst, int logicalLast)

Esta ranura se activa cuando se insertan secciones en parent. Los índices logicalFirst y logicalLast indican dónde se han insertado las nuevas secciones.

Si sólo se inserta una sección, logicalFirst y logicalLast serán iguales.

bool QHeaderView::sectionsMovable() const

Devuelve sectionsMovable.

Nota: Función Getter para la propiedad sectionsMovable.

Véase también setSectionsMovable().

bool QHeaderView::sectionsMoved() const

Devuelve true si las secciones de la cabecera se han movido; en caso contrario devuelve false;

Véase también moveSection().

[override virtual] void QHeaderView::setModel(QAbstractItemModel *model)

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

[slot] void QHeaderView::setOffset(int offset)

Establece el offset de la cabecera en offset.

Véase también offset() y length().

[slot] void QHeaderView::setOffsetToLastSection()

Establece el desplazamiento para hacer visible la última sección.

Véase también setOffset(), sectionPosition() y setOffsetToSectionPosition().

[slot] void QHeaderView::setOffsetToSectionPosition(int visualSectionNumber)

Establece el desplazamiento al inicio de la sección en el visualSectionNumber dado. visualSectionNumber es la sección visible real cuando no se consideran las hiddenSections. No siempre es lo mismo que visualIndex().

Véase también setOffset() y sectionPosition().

void QHeaderView::setResizeContentsPrecision(int precision)

Establece la precisión con la que QHeaderView debe calcular el tamaño cuando se utiliza ResizeToContents. Un valor bajo proporcionará un cambio de tamaño automático menos preciso pero rápido, mientras que un valor más alto proporcionará un cambio de tamaño más preciso que, sin embargo, puede ser lento.

El número precision especifica cuántas secciones deben ser consideradas cuando se calcula el tamaño preferido.

El valor por defecto es 1000, lo que significa que una columna horizontal con redimensionamiento automático tendrá en cuenta un máximo de 1000 filas al calcular el redimensionamiento automático.

El valor especial 0 significa que sólo mirará el área visible. El valor especial -1 implicará mirar todos los elementos.

Este valor se utiliza en QTableView::sizeHintForColumn(), QTableView::sizeHintForRow() y QTreeView::sizeHintForColumn(). Reimplementar estas funciones puede hacer que esta función no tenga efecto.

Véase también resizeContentsPrecision(), setSectionResizeMode(), resizeSections(), QTableView::sizeHintForColumn(), QTableView::sizeHintForRow() y QTreeView::sizeHintForColumn().

void QHeaderView::setSectionHidden(int logicalIndex, bool hide)

Si hide es verdadero, la sección especificada por logicalIndex se oculta; en caso contrario, la sección se muestra.

Véase también isSectionHidden() y hiddenSectionCount().

void QHeaderView::setSectionResizeMode(QHeaderView::ResizeMode mode)

Establece las restricciones sobre cómo se puede cambiar el tamaño de la cabecera a las descritas por el mode dado.

Véase también sectionResizeMode(), length() y sectionResized().

void QHeaderView::setSectionResizeMode(int logicalIndex, QHeaderView::ResizeMode mode)

Establece las restricciones sobre cómo la sección especificada por logicalIndex en la cabecera puede ser redimensionada a las descritas por el mode dado. El índice lógico debe existir en el momento de llamar a esta función.

Nota: Este ajuste será ignorado para la última sección si la propiedad stretchLastSection está establecida en true. Este es el valor por defecto para las cabeceras horizontales proporcionadas por QTreeView.

Véase también setStretchLastSection() y resizeContentsPrecision().

void QHeaderView::setSectionsClickable(bool clickable)

Establece sectionsClickable en clickable.

Nota: Función Setter para la propiedad sectionsClickable.

Véase también sectionsClickable().

void QHeaderView::setSectionsMovable(bool movable)

Establece sectionsMovable en movable.

Nota: Función Setter para la propiedad sectionsMovable.

Véase también sectionsMovable().

[override virtual protected] void QHeaderView::setSelection(const QRect &rect, QItemSelectionModel::SelectionFlags flags)

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

Selecciona los elementos en el rect dado de acuerdo con el flags especificado.

La implementación de la clase base no hace nada.

void QHeaderView::setSortIndicator(int logicalIndex, Qt::SortOrder order)

Establece el indicador de ordenación para la sección especificada por logicalIndex en la dirección especificada por order, y elimina el indicador de ordenación de cualquier otra sección que lo estuviera mostrando.

logicalIndex puede ser -1, en cuyo caso no se mostrará ningún indicador de ordenación y el modelo volverá a su orden natural, sin ordenar. Tenga en cuenta que no todos los modelos soportan esto e incluso pueden bloquearse en este caso.

Véase también sortIndicatorSection() y sortIndicatorOrder().

[override virtual] void QHeaderView::setVisible(bool v)

Reimplementa una función de acceso para la propiedad: QWidget::visible.

void QHeaderView::showSection(int logicalIndex)

Muestra la sección especificada por logicalIndex.

Véase también hideSection(), isSectionHidden(), hiddenSectionCount() y setSectionHidden().

[override virtual] QSize QHeaderView::sizeHint() const

Reimplementa: QAbstractScrollArea::sizeHint() const.

Devuelve una sugerencia de tamaño adecuada para esta cabecera.

Véase también sectionSizeHint().

[signal] void QHeaderView::sortIndicatorChanged(int logicalIndex, Qt::SortOrder order)

Esta señal se emite cuando se cambia la sección que contiene el indicador de ordenación o el orden indicado. El índice lógico de la sección se especifica mediante logicalIndex y el orden de clasificación se especifica mediante order.

Véase también setSortIndicator().

Qt::SortOrder QHeaderView::sortIndicatorOrder() const

Devuelve el orden del indicador de ordenación. Si ninguna sección tiene un indicador de ordenación, el valor de retorno de esta función es indefinido.

Véase también setSortIndicator() y sortIndicatorSection().

int QHeaderView::sortIndicatorSection() const

Devuelve el índice lógico de la sección que tiene un indicador de ordenación. Por defecto es la sección 0.

Véase también setSortIndicator(), sortIndicatorOrder() y setSortIndicatorShown().

int QHeaderView::stretchSectionCount() const

Devuelve el número de secciones que están configuradas para estirar en modo redimensionamiento. En las vistas, esto se puede utilizar para ver si la vista de cabecera necesita redimensionar las secciones cuando cambia la geometría de la vista.

Véase también stretchLastSection.

void QHeaderView::swapSections(int first, int second)

Intercambia la sección en el índice visual first con la sección en el índice visual second.

Véase también moveSection().

[override virtual protected] int QHeaderView::verticalOffset() const

Reimplementa: QAbstractItemView::verticalOffset() const.

Devuelve el desplazamiento vertical de la cabecera. Es 0 para cabeceras horizontales.

Véase también offset().

[override virtual protected] bool QHeaderView::viewportEvent(QEvent *e)

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

int QHeaderView::visualIndex(int logicalIndex) const

Devuelve la posición del índice visual de la sección especificada en logicalIndex, o -1 en caso contrario.

Las secciones ocultas siguen teniendo índices visuales válidos.

Véase también logicalIndex().

int QHeaderView::visualIndexAt(int position) const

Devuelve el índice visual de la sección que cubre el position dado en la ventana gráfica.

Véase también logicalIndexAt().

© 2026 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.