Sur cette page

QHeaderView Class

La classe QHeaderView permet d'afficher une ligne ou une colonne d'en-tête dans les vues d'éléments. En savoir plus...

En-tête : #include <QHeaderView>
CMake : find_package(Qt6 REQUIRED COMPONENTS Widgets)
target_link_libraries(mytarget PRIVATE Qt6::Widgets)
qmake : QT += widgets
Hérite de : QAbstractItemView

Types publics

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

Propriétés

Fonctions publiques

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

Fonctions publiques réimplémentées

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

Slots publics

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

Signaux

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)

Fonctions protégées

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

Fonctions protégées réimplémentées

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

Slots protégés

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

Description détaillée

Une classe QHeaderView affiche les en-têtes utilisés dans les vues d'éléments telles que les classes QTableView et QTreeView. Elle remplace la classe QHeader de Qt3, précédemment utilisée dans le même but, mais utilise l'architecture modèle/vue de Qt pour assurer la cohérence avec les classes de vues d'éléments.

La classe QHeaderView fait partie des classes modèle/vue et s'inscrit dans le cadre modèle/vue de Qt.

L'en-tête récupère les données de chaque section à partir du modèle à l'aide de la fonction ` QAbstractItemModel::headerData()`. Vous pouvez définir ces données à l'aide de la fonction ` QAbstractItemModel::setHeaderData()`.

Chaque en-tête dispose d’une méthode ` orientation()` et d’un certain nombre de sections, définies par la fonction ` count()`. Une section désigne une partie de l’en-tête : soit une ligne, soit une colonne, selon l’orientation.

Les sections peuvent être déplacées et redimensionnées à l'aide de ` moveSection()` et ` resizeSection()` ; elles peuvent également être masquées et affichées avec ` hideSection()` et ` showSection()`.

Chaque section d’un en-tête est décrite par un identifiant de section, spécifié par sa fonction section(), et peut être située à une position particulière visualIndex() dans l’en-tête. Une section peut avoir un indicateur de tri défini à l’aide de setSortIndicator() ; celui-ci indique si les éléments de la vue d’éléments associée seront triés dans l’ordre donné par la section.

Pour un en-tête horizontal, la section équivaut à une colonne du modèle, et pour un en-tête vertical, la section équivaut à une ligne du modèle.

Déplacement des sections d’en-tête

Un en-tête peut être fixé à sa place ou rendu déplaçable à l’aide de ` setSectionsMovable()` (). Il peut être rendu cliquable à l’aide de ` setSectionsClickable()` (), et son redimensionnement s’effectue conformément à ` setSectionResizeMode()` ().

Remarque : le double-clic sur un en-tête pour redimensionner une section ne s’applique qu’aux lignes visibles.

Un en-tête émettra l’événement sectionMoved() si l’utilisateur déplace une section, sectionResized() s’il redimensionne une section, ainsi que sectionClicked() et sectionHandleDoubleClicked() en réponse à des clics de souris. Un en-tête émettra également l’événement sectionCountChanged().

Vous pouvez identifier une section à l’aide des fonctions logicalIndex() et logicalIndexAt(), ou par sa position d’index, à l’aide des fonctions visualIndex() et visualIndexAt(). L’index visuel changera si une section est déplacée, mais l’index logique restera inchangé.

Apparence

QTableWidget et ` QTableView ` créent des en-têtes par défaut. Si vous souhaitez que les en-têtes soient visibles, vous pouvez utiliser ` setVisible()`.

Toutes les fonctions ` ItemDataRole` n’ont pas nécessairement d’effet sur une instance de `QHeaderView`. Si vous avez besoin d’afficher d’autres rôles, vous pouvez créer une sous-classe de `QHeaderView` et réimplémenter la fonction ` paintEvent()`. `QHeaderView` prend en charge les rôles de données d’élément suivants, à moins qu’ils n’entrent en conflit avec le style (ce qui peut arriver pour les styles suivant le thème du bureau) :

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

Remarque : chaque en-tête affiche les données de chaque section de manière autonome et ne s'appuie pas sur un délégué. Par conséquent, l'appel de la fonction setItemDelegate() d'un en-tête n'aura aucun effet.

Considérations particulières pour les modèles volumineux

La vue d'en-tête utilise entre 8 et 16 octets de mémoire par section. Cependant, depuis Qt 6.9, cette mémoire de section n’est utilisée que si une ou plusieurs sections sont redimensionnées ou réorganisées. Cela signifie qu’un modèle peut comporter des millions de sections sans que QHeaderView ne consomme une quantité proportionnelle – et donc considérable – de mémoire, à condition qu’il n’ y ait aucun appel aux fonctions swapSections, resizeSection, hideSection, moveSection et stretchLastSection (qui l’activent). Afin d’éviter de tels appels provoqués par des actions de l’utilisateur, l’option « resize mode » doit être définie sur « Fixed » (sans la spécifier pour aucun index, car cela aurait l’effet inverse). Il convient également d’empêcher l’utilisateur de déplacer des sections en maintenant l’option « sectionsMovable » désactivée.

Considérations de sécurité

La fonction restoreState() désérialise un blob binaire versionné qui décrit l’ordre des colonnes, la taille des sections, l’indicateur de tri et l’état de la vue associée. Le nombre magique du format, la version et la longueur totale déclarée sont validés, mais les index visuels et logiques désérialisés ainsi que la section de l’indicateur de tri ne sont pas vérifiés par rapport au nombre réel de sections de l’en-tête avant d’être utilisés pour indexer les structures de données internes.

Ne transmettez à ` restoreState()` qu’un ` QByteArray ` précédemment généré par ` saveState()` et persisté par la même version, ou une version compatible, de votre application, généralement après un aller-retour via ` QSettings`. N’appelez pas la méthode restoreState() avec des données d’origine inconnue ou non fiable, telles qu’un fichier téléchargé depuis le réseau, un fichier de configuration synchronisé ou partagé, ou des données fournies par une autre application potentiellement compromise.

Voir également Programmation modèle/vue, QListView, QTableView, QTreeView, saveState() et restoreState().

Documentation sur les types de membres

enum QHeaderView::ResizeMode

Le mode de redimensionnement définit le comportement des sections de l'en-tête. Il peut être défini pour l'ensemble de la vue de l'en-tête ou pour des sections individuelles à l'aide de la fonction ` setSectionResizeMode()`.

ConstanteValeurDescription
QHeaderView::Interactive0L'utilisateur peut redimensionner la section. La section peut également être redimensionnée par programmation à l'aide de la fonction resizeSection(). La taille par défaut de la section est defaultSectionSize. (Voir également cascadingSectionResizes.)
QHeaderView::Fixed2L'utilisateur ne peut pas redimensionner la section. La section ne peut être redimensionnée que par programmation à l'aide de resizeSection(). La taille par défaut de la section est defaultSectionSize.
QHeaderView::Stretch1QHeaderView redimensionnera automatiquement la section pour occuper tout l'espace disponible. La taille ne peut être modifiée ni par l'utilisateur ni par programmation.
QHeaderView::ResizeToContents3QHeaderView redimensionnera automatiquement la section à sa taille optimale en fonction du contenu de la colonne ou de la ligne entière. La taille ne peut être modifiée ni par l’utilisateur ni par programmation. (Cette valeur a été introduite dans la version 4.2)

Les valeurs suivantes sont obsolètes :

ConstanteValeurDescription
QHeaderView::CustomFixedUtilisez « Fixed » à la place.

Voir également setSectionResizeMode(), stretchLastSection et minimumSectionSize.

Documentation sur les propriétés

cascadingSectionResizes : bool

Cette propriété détermine si le redimensionnement interactif sera répercuté sur les sections suivantes une fois que la section en cours de redimensionnement par l'utilisateur aura atteint sa taille minimale

Cette propriété n'affecte que les sections dont le mode de redimensionnement est défini sur « Interactive ».

La valeur par défaut est « false ».

Fonctions d'accès :

bool cascadingSectionResizes() const
void setCascadingSectionResizes(bool enable)

Voir également setSectionResizeMode().

defaultAlignment : Qt::Alignment

Cette propriété définit l'alignement par défaut du texte dans chaque section d'en-tête

Fonctions d'accès :

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

defaultSectionSize : int

Cette propriété définit la taille par défaut des sections d'en-tête avant leur redimensionnement.

Cette propriété n'affecte que les sections dont le mode de redimensionnement est défini sur « Interactive » ou « Fixed ».

Par défaut, la valeur de cette propriété dépend du style. Ainsi, lorsque le style change, cette propriété est mise à jour en conséquence. L'appel de la méthode setDefaultSectionSize() interrompt les mises à jour, tandis que l'appel de la méthode resetDefaultSectionSize() rétablit le comportement par défaut.

Fonctions d’accès :

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

Voir également setSectionResizeMode() et minimumSectionSize.

firstSectionMovable : bool

Cette propriété indique si la première colonne peut être déplacée par l'utilisateur

Cette propriété détermine si la première colonne peut être déplacée par l'utilisateur. Dans une arborescence ( QTreeView), la première colonne contient la structure arborescente et n'est donc pas déplaçable par défaut, même lorsque la valeur « setSectionsMovable » est définie sur « true ».

Il est possible de la rendre à nouveau déplaçable, par exemple dans le cas de listes plates sans structure arborescente, en appelant cette méthode. Dans un tel scénario, il est recommandé d’appeler également la méthode QTreeView::setRootIsDecorated(false).

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

Le fait de définir cette valeur sur « true » n’a aucun effet tant que la méthode « setSectionsMovable » (true) n’est pas également appelée.

Fonctions d'accès :

bool isFirstSectionMovable() const
void setFirstSectionMovable(bool movable)

Voir également ` setSectionsMovable()`.

highlightSections : bool

Cette propriété indique si les sections contenant les éléments sélectionnés sont mises en surbrillance

Par défaut, cette propriété est définie sur « false ».

Fonctions d'accès :

bool highlightSections() const
void setHighlightSections(bool highlight)

maximumSectionSize : int

Cette propriété définit la taille maximale des sections d'en-tête.

La taille maximale d'une section correspond à la plus grande taille autorisée pour une section. La valeur par défaut de cette propriété est 1048575, qui correspond également à la plus grande taille possible pour une section. Définir la valeur « maximum » sur -1 réinitialisera la valeur à la plus grande taille de section.

À l'exception de la propriété « stretch », cette propriété est prise en compte par toutes les resize modes

fonctions d'Access :

int maximumSectionSize() const
void setMaximumSectionSize(int size)

Voir également setSectionResizeMode() et defaultSectionSize.

minimumSectionSize : int

Cette propriété définit la taille minimale des sections d'en-tête.

La taille minimale des sections correspond à la plus petite taille autorisée. Si la taille minimale des sections est définie sur -1, QHeaderView utilisera la taille font metrics.

Cette propriété est prise en compte par tous les resize modes.

Fonctions d'accès :

int minimumSectionSize() const
void setMinimumSectionSize(int size)

Voir également setSectionResizeMode() et defaultSectionSize.

sectionsClickable : bool

Prend la valeur « true » si l'en-tête est cliquable ; sinon, « false ». Un en-tête cliquable peut être configuré pour permettre à l'utilisateur de modifier la représentation des données dans la vue associée à cet en-tête.

Fonctions d'accès :

bool sectionsClickable() const
void setSectionsClickable(bool clickable)

Voir également sectionPressed() et setSortIndicatorShown().

sectionsMovable : bool

Si la valeur de sectionsMovable est « true », les sections d'en-tête peuvent être déplacées par l'utilisateur ; dans le cas contraire, elles sont fixes.

Lorsqu’elle est utilisée en combinaison avec ` QTreeView`, la première colonne n’est pas déplaçable (car elle contient la structure arborescente), par défaut. Vous pouvez la rendre déplaçable avec ` setFirstSectionMovable` (vrai).

Fonctions d'accès :

bool sectionsMovable() const
void setSectionsMovable(bool movable)

Voir également sectionMoved() et setFirstSectionMovable().

showSortIndicator : bool

Cette propriété détermine si l'indicateur de tri est affiché

Par défaut, cette propriété est définie sur « false ».

Fonctions d'accès :

bool isSortIndicatorShown() const
void setSortIndicatorShown(bool show)

Voir aussi setSectionsClickable().

[since 6.1] sortIndicatorClearable : bool

Cette propriété détermine si l'indicateur de tri peut être désactivé en cliquant plusieurs fois sur une section

Cette propriété détermine si l'utilisateur peut désactiver l'indicateur de tri d'une section donnée en cliquant plusieurs fois sur celle-ci. Normalement, cliquer sur une section modifie simplement l'ordre de tri de cette section. En définissant cette propriété sur « true », l'indicateur de tri sera désactivé après une alternance entre l'ordre croissant et décroissant ; cela permet généralement de rétablir le tri d'origine d'un modèle.

Définir cette propriété sur « true » n’a aucun effet à moins que ` sectionsClickable()` ne soit également défini sur « true » (ce qui est la valeur par défaut pour certaines vues, par exemple ` QTableView`, ou est automatiquement défini lorsque l’on rend une vue triable, par exemple en appelant ` QTreeView::setSortingEnabled`).

Cette énumération a été introduite dans Qt 6.1.

Fonctions d'accès :

bool isSortIndicatorClearable() const
void setSortIndicatorClearable(bool clearable)

Signal du notificateur :

void sortIndicatorClearableChanged(bool clearable)

stretchLastSection : bool

Cette propriété indique si la dernière section visible dans l'en-tête occupe tout l'espace disponible

La valeur par défaut est « false ».

Remarque : les en-têtes horizontaux fournis par QTreeView sont configurés avec cette propriété définie sur « true », ce qui garantit que la vue ne gaspille pas l'espace qui lui est alloué pour son en-tête. Si cette valeur est définie sur « true », cette propriété remplace le mode de redimensionnement défini sur la dernière section de l'en-tête.

Fonctions d'accès :

bool stretchLastSection() const
void setStretchLastSection(bool stretch)

Voir aussi setSectionResizeMode().

Documentation des fonctions membres

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

Crée un nouvel en-tête générique avec les valeurs indiquées pour les paramètres « orientation » et « parent ».

[virtual noexcept] QHeaderView::~QHeaderView()

Supprime l'en-tête.

int QHeaderView::count() const

Renvoie le nombre de sections dans l'en-tête.

Voir également sectionCountChanged() et length().

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

Réimplémente : QAbstractItemView::currentChanged(const QModelIndex &current, const QModelIndex &previous).

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

Réimplémente : QAbstractItemView::event(QEvent *event).

[signal] void QHeaderView::geometriesChanged()

Ce signal est émis lorsque les géométries de l'en-tête ont changé.

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

Met à jour les sections d'en-tête modifiées avec l'orientation ion fournie, de logicalFirst à logicalLast inclus.

int QHeaderView::hiddenSectionCount() const

Renvoie le nombre de sections de l'en-tête qui ont été masquées.

Voir également setSectionHidden() et isSectionHidden().

void QHeaderView::hideSection(int logicalIndex)

Masque la section spécifiée par logicalIndex.

Voir également showSection(), isSectionHidden(), hiddenSectionCount() et setSectionHidden().

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

Réimplémente : QAbstractItemView::horizontalOffset() const.

Renvoie le décalage horizontal de l'en-tête. Cette valeur est égale à 0 pour les en-têtes verticaux.

Voir aussi offset().

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

Initialisez ` option ` avec les valeurs fournies à l'adresse QHeaderView. Cette méthode est utile pour les sous-classes qui ont besoin d'un ` QStyleOptionHeader`, mais ne souhaitent pas renseigner elles-mêmes toutes les informations.

Voir également QStyleOption::initFrom() et initStyleOptionForIndex().

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

Initialise le style option à partir de l'logicalIndex spécifié. Cette fonction est appelée par l'implémentation par défaut de paintSection après l'appel de initStyleOption.

Cette fonction a été introduite dans Qt 6.0.

Voir également paintSection() et initStyleOption().

bool QHeaderView::isSectionHidden(int logicalIndex) const

Renvoie « true » si la section spécifiée par « logicalIndex » est explicitement masquée à l'utilisateur ; sinon, renvoie « false ».

Voir également hideSection(), showSection(), setSectionHidden() et hiddenSectionCount().

int QHeaderView::length() const

Renvoie la longueur le long de l'orientation de l'en-tête.

Voir également sizeHint(), setSectionResizeMode() et offset().

int QHeaderView::logicalIndex(int visualIndex) const

Renvoie l'index logique de la section située à la position indiquée par ` visualIndex `, ou -1 si ` visualIndex ` < 0 ou si ` visualIndex ` >= ` QHeaderView::count()`.

Notez que l'visualIndex n'est pas affectée par les sections masquées.

Voir également visualIndex() et sectionPosition().

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

Renvoie l'index logique de la section située à la position indiquée dans pos. Si l'en-tête est horizontale, c'est la coordonnée x qui sera utilisée ; dans le cas contraire, c'est la coordonnée y qui servira à déterminer l'index logique.

Voir aussi sectionPosition().

int QHeaderView::logicalIndexAt(int position) const

Renvoie la section de la fenêtre d'affichage qui recouvre l'position e spécifiée.

Voir également ` visualIndexAt()` et ` isSectionHidden()`.

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

Renvoie l'index logique de la section située à la coordonnée indiquée. Si l'en-tête est horizontale, on utilisera ` x ` ; dans le cas contraire, on utilisera ` y ` pour déterminer l'index logique.

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

Réimplémente : QAbstractItemView::mouseDoubleClickEvent(QMouseEvent *event).

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

Réimplémente : QAbstractItemView::mouseMoveEvent(QMouseEvent *event).

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

Réimplémente : QAbstractItemView::mousePressEvent(QMouseEvent *event).

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

Réimplémente : QAbstractItemView::mouseReleaseEvent(QMouseEvent *event).

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

Déplace la section située à l'index visuel from pour qu'elle occupe l'index visuel to.

Voir également sectionsMoved().

int QHeaderView::offset() const

Renvoie le décalage de l'en-tête : il s'agit du pixel visible le plus à gauche (ou le plus en haut pour les en-têtes verticaux) de l'en-tête.

Voir aussi setOffset().

Qt::Orientation QHeaderView::orientation() const

Renvoie l'orientation de l'en-tête.

Voir aussi Qt::Orientation.

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

Réimplémente : QAbstractScrollArea::paintEvent(QPaintEvent *event).

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

Peint la section spécifiée par l'logicalIndex donné, en utilisant les paramètres painter et rect fournis.

En règle générale, vous n'avez pas besoin d'appeler cette fonction.

[override virtual] void QHeaderView::reset()

Réimplémente : QAbstractItemView::reset().

int QHeaderView::resizeContentsPrecision() const

Renvoie le niveau de précision avec lequel ` QHeaderView ` effectuera le calcul sur ` ResizeToContents`.

Voir également setResizeContentsPrecision() et setSectionResizeMode().

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

Redimensionne la section spécifiée par logicalIndex à size, en pixels. Le paramètre « size » doit être une valeur supérieure ou égale à zéro. Une taille égale à zéro n’est toutefois pas recommandée. Dans ce cas, il convient d’utiliser plutôt hideSection.

Voir également sectionResized(), sectionSize() et hideSection().

[protected slot] void QHeaderView::resizeSections()

Redimensionne les sections en fonction de leurs indications de taille. En règle générale, vous n'avez pas besoin d'appeler cette fonction.

Remarque : ce slot est surchargé. Pour vous connecter à ce slot :

// 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(); });
Pour plus d’exemples et d’approches, consultez la section « Connexion à des slots surchargés ».

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

Redimensionne les sections en fonction de l'mode e indiquée, sans tenir compte du mode de redimensionnement actuel.

Voir également sectionResized().

bool QHeaderView::restoreState(const QByteArray &state)

Restaure l'state de cette vue d'en-tête. Cette fonction renvoie « true » si l'état a été restauré ; sinon, elle renvoie « false ».

Voir aussi saveState().

QByteArray QHeaderView::saveState() const

Enregistre l'état actuel de cette vue d'en-tête.

Pour restaurer l'état enregistré, transmettez la valeur de retour à la fonction restoreState().

Voir également restoreState().

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

Ce signal est émis lorsqu'on clique sur une section. L'index logique de la section est spécifié par ` logicalIndex`.

Notez que le signal « sectionPressed » sera également émis.

Voir également setSectionsClickable() et sectionPressed().

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

Ce signal est émis lorsque le nombre de sections change, c'est-à-dire lorsque des sections sont ajoutées ou supprimées. Le nombre initial est spécifié par oldCount, et le nouveau nombre par newCount.

Voir également count(), length() et headerDataChanged().

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

Ce signal est émis lorsqu'on double-clique sur une section. L'index logique de la section est spécifié par logicalIndex.

Voir également setSectionsClickable().

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

Ce signal est émis lorsque le curseur passe sur la section et que l'on appuie sur le bouton gauche de la souris. L'index logique de la section est spécifié par logicalIndex.

Voir également setSectionsClickable() et sectionPressed().

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

Ce signal est émis lorsqu'on double-clique sur une section. L'index logique de la section est spécifié par logicalIndex.

Voir également setSectionsClickable().

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

Ce signal est émis lorsqu'une section est déplacée. L'index logique de la section est spécifié par logicalIndex, l'ancien index par oldVisualIndex et le nouvel index par newVisualIndex.

Voir également moveSection().

int QHeaderView::sectionPosition(int logicalIndex) const

Renvoie la position de la section indiquée par ` logicalIndex`, ou -1 si la section est masquée. La position est mesurée en pixels, du coin supérieur gauche du premier élément visible au coin supérieur gauche de l'élément pour lequel ` logicalIndex` est défini. La mesure s'effectue le long de l'axe x pour les en-têtes horizontaux et le long de l'axe y pour les en-têtes verticaux.

Voir aussi sectionViewportPosition().

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

Ce signal est émis lorsqu'une section est enfoncée. L'index logique de la section est spécifié par logicalIndex.

Voir également setSectionsClickable().

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

Renvoie le mode de redimensionnement applicable à la section spécifiée par l'logicalIndex donné.

Voir aussi setSectionResizeMode().

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

Ce signal est émis lorsqu’une section est redimensionnée. Le numéro logique de la section est spécifié par logicalIndex, l’ancienne taille par oldSize et la nouvelle taille par newSize.

Voir également resizeSection().

int QHeaderView::sectionSize(int logicalIndex) const

Renvoie la largeur (ou la hauteur pour les en-têtes verticaux) de l'logicalIndex donné.

Voir également length(), setSectionResizeMode() et defaultSectionSize().

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

Renvoie la taille du contenu de la section spécifiée par l'logicalIndex donné.

Voir aussi defaultSectionSize().

int QHeaderView::sectionSizeHint(int logicalIndex) const

Renvoie une indication de taille adaptée à la section spécifiée par logicalIndex.

Qt::SizeHintRole

Voir également sizeHint(), defaultSectionSize(), minimumSectionSize() et maximumSectionSize().

int QHeaderView::sectionViewportPosition(int logicalIndex) const

Renvoie la position de la fenêtre de vue de section de l'logicalIndex donné.

Si la section est masquée, la valeur renvoyée n'est pas définie.

Voir également ` sectionPosition()` et ` isSectionHidden()`.

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

Cet emplacement est appelé lorsque des sections sont supprimées de l'parent. logicalFirst et logicalLast indiquent où les sections ont été supprimées.

Si une seule section est supprimée, logicalFirst et logicalLast seront identiques.

bool QHeaderView::sectionsClickable() const

Renvoie les sections « Clickable ».

Remarque : fonctiongetter pour la propriété sectionsClickable.

Voir aussi setSectionsClickable().

bool QHeaderView::sectionsHidden() const

Renvoie « true » si des sections de l'en-tête ont été masquées ; sinon, renvoie « false » ;

Voir aussi setSectionHidden().

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

Cet emplacement est appelé lorsque des sections sont insérées dans le fichier parent. Les index logicalFirst et logicalLast indiquent l'emplacement où les nouvelles sections ont été insérées.

Si une seule section est insérée, les valeurs de logicalFirst et logicalLast seront identiques.

bool QHeaderView::sectionsMovable() const

Renvoie les sections de `sectionsMovable`.

Remarque : fonctiongetter pour la propriété sectionsMovable.

Voir aussi setSectionsMovable().

bool QHeaderView::sectionsMoved() const

Renvoie « true » si des sections de l'en-tête ont été déplacées ; sinon, renvoie « false » ;

Voir aussi moveSection().

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

Réimplémente : QAbstractItemView::setModel(QAbstractItemModel *model).

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

Définit le décalage de l'en-tête sur offset.

Voir également offset() et length().

[slot] void QHeaderView::setOffsetToLastSection()

Définit le décalage permettant de rendre la dernière section visible.

Voir également setOffset(), sectionPosition() et setOffsetToSectionPosition().

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

Définit le décalage par rapport au début de la section à l'adresse indiquée visualSectionNumber. visualSectionNumber correspond à la section réellement visible lorsque les sections masquées (hiddenSections) ne sont pas prises en compte. Cette valeur n'est pas toujours identique à celle renvoyée par la fonction visualIndex().

Voir également setOffset() et sectionPosition().

void QHeaderView::setResizeContentsPrecision(int precision)

Définit le niveau de précision avec lequel ` QHeaderView ` doit calculer la taille lorsque ` ResizeToContents ` est utilisé. Une valeur faible permettra un redimensionnement automatique moins précis mais plus rapide, tandis qu’une valeur plus élevée offrira un redimensionnement plus précis, mais qui peut s’avérer plus lent.

Le nombre precision spécifie le nombre de sections à prendre en compte lors du calcul de la taille recommandée.

La valeur par défaut est 1000, ce qui signifie qu’une colonne horizontale avec redimensionnement automatique prendra en compte au maximum 1000 lignes lors du calcul du redimensionnement.

La valeur spéciale 0 signifie qu’elle ne prendra en compte que la zone visible. La valeur spéciale -1 implique la prise en compte de tous les éléments.

Cette valeur est utilisée dans QTableView::sizeHintForColumn(), QTableView::sizeHintForRow() et QTreeView::sizeHintForColumn(). La réimplémentation de ces fonctions peut rendre cette fonction inopérante.

Voir également resizeContentsPrecision(), setSectionResizeMode(), resizeSections(), QTableView::sizeHintForColumn(), QTableView::sizeHintForRow() et QTreeView::sizeHintForColumn().

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

Si hide est vrai, la section indiquée par logicalIndex est masquée ; dans le cas contraire, elle est affichée.

Voir également isSectionHidden() et hiddenSectionCount().

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

Définit les contraintes relatives au redimensionnement de l'en-tête conformément à celles décrites dans le document mode.

Voir également sectionResizeMode(), length() et sectionResized().

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

Définit les contraintes relatives au redimensionnement de la section spécifiée par ` logicalIndex ` dans l’en-tête, en fonction de celles décrites par la propriété ` mode` indiquée. L’index logique doit exister au moment de l’appel de cette fonction.

Remarque : ce paramètre sera ignoré pour la dernière section si la propriété stretchLastSection est définie sur true. Il s'agit de la valeur par défaut pour les en-têtes horizontaux fournis par QTreeView.

Voir également setStretchLastSection() et resizeContentsPrecision().

void QHeaderView::setSectionsClickable(bool clickable)

Définissez la propriété « sectionsClickable » sur « clickable ».

Remarque : fonctionde définition de la propriété sectionsClickable.

Voir également sectionsClickable().

void QHeaderView::setSectionsMovable(bool movable)

Définit la propriété « sectionsMovable » sur « movable ».

Remarque : fonctionde définition de la propriété sectionsMovable.

Voir également sectionsMovable().

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

Réimplémente : QAbstractItemView::setSelection(const QRect &rect, QItemSelectionModel::SelectionFlags flags).

Sélectionne les éléments dans l'rect donné en fonction de l'flags spécifié.

L'implémentation de la classe de base ne fait rien.

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

Définit l'indicateur de tri pour la section spécifiée par l'logicalIndex donné, dans la direction indiquée par order, et supprime l'indicateur de tri de toute autre section qui l'affichait.

logicalIndex La valeur peut être -1 ; dans ce cas, aucun indicateur de tri ne s'affichera et le modèle reviendra à son ordre naturel, non trié. Notez que tous les modèles ne prennent pas en charge cette fonctionnalité et peuvent même se bloquer dans ce cas.

Voir également sortIndicatorSection() et sortIndicatorOrder().

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

Réimplémente une fonction d'accès pour la propriété : QWidget::visible.

void QHeaderView::showSection(int logicalIndex)

Affiche la section spécifiée par logicalIndex.

Voir également hideSection(), isSectionHidden(), hiddenSectionCount() et setSectionHidden().

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

Réimplémente : QAbstractScrollArea::sizeHint() const.

Renvoie une estimation de taille appropriée pour cet en-tête.

Voir également sectionSizeHint().

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

Ce signal est émis lorsque la section contenant l'indicateur de tri ou l'ordre indiqué est modifiée. L'index logique de la section est spécifié par logicalIndex et l'ordre de tri est spécifié par order.

Voir également setSortIndicator().

Qt::SortOrder QHeaderView::sortIndicatorOrder() const

Renvoie l'ordre correspondant à l'indicateur de tri. Si aucune section ne dispose d'un indicateur de tri, la valeur renvoyée par cette fonction n'est pas définie.

Voir également setSortIndicator() et sortIndicatorSection().

int QHeaderView::sortIndicatorSection() const

Renvoie l'index logique de la section dotée d'un indicateur de tri. Par défaut, il s'agit de la section 0.

Voir également setSortIndicator(), sortIndicatorOrder() et setSortIndicatorShown().

int QHeaderView::stretchSectionCount() const

Renvoie le nombre de sections configurées en mode de redimensionnement « stretch ». Dans les vues, cette fonction permet de vérifier si la vue d'en-tête doit redimensionner les sections lorsque la géométrie de la vue change.

Voir également stretchLastSection.

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

Permute la section correspondant à l'index visuel first avec celle correspondant à l'index visuel second.

Voir également moveSection().

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

Réimplémente : QAbstractItemView::verticalOffset() const.

Renvoie le décalage vertical de l'en-tête. Cette valeur est égale à 0 pour les en-têtes horizontaux.

Voir également offset().

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

Réimplémente : QAbstractItemView::viewportEvent(QEvent *event).

int QHeaderView::visualIndex(int logicalIndex) const

Renvoie la position de l'index visuel de la section spécifiée par l'logicalIndex donné, ou -1 dans le cas contraire.

Les sections masquées possèdent toujours des indices visuels valides.

Voir aussi logicalIndex().

int QHeaderView::visualIndexAt(int position) const

Renvoie l'index visuel de la section qui recouvre l'position e spécifiée dans la fenêtre d'affichage.

Voir aussi 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.