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 ¤t, 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()`.
| Constante | Valeur | Description |
|---|---|---|
QHeaderView::Interactive | 0 | L'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::Fixed | 2 | L'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::Stretch | 1 | QHeaderView 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::ResizeToContents | 3 | QHeaderView 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 :
| Constante | Valeur | Description |
|---|---|---|
QHeaderView::Custom | Fixed | Utilisez « 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 ¤t, const QModelIndex &old)
Réimplémente : QAbstractItemView::currentChanged(const QModelIndex ¤t, 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(); });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.
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.