QAbstractScrollArea Class
Le widget QAbstractScrollArea fournit une zone de défilement dotée de barres de défilement activables à la demande. En savoir plus...
| En-tête : | #include <QAbstractScrollArea> |
| CMake : | find_package(Qt6 REQUIRED COMPONENTS Widgets) target_link_libraries(mytarget PRIVATE Qt6::Widgets) |
| qmake : | QT += widgets |
| Hérite de : | QFrame |
| Hérité par : | QAbstractItemView, QGraphicsView, QMdiArea, QPlainTextEdit, QScrollArea, et QTextEdit |
Types publics
| enum | SizeAdjustPolicy { AdjustIgnored, AdjustToContents, AdjustToContentsOnFirstShow } |
Propriétés
- horizontalScrollBarPolicy : Qt::ScrollBarPolicy
- sizeAdjustPolicy : SizeAdjustPolicy
- verticalScrollBarPolicy : Qt::ScrollBarPolicy
Fonctions publiques
| QAbstractScrollArea(QWidget *parent = nullptr) | |
| virtual | ~QAbstractScrollArea() |
| void | addScrollBarWidget(QWidget *widget, Qt::Alignment alignment) |
| QWidget * | cornerWidget() const |
| QScrollBar * | horizontalScrollBar() const |
| Qt::ScrollBarPolicy | horizontalScrollBarPolicy() const |
| QSize | maximumViewportSize() const |
| QWidgetList | scrollBarWidgets(Qt::Alignment alignment) |
| void | setCornerWidget(QWidget *widget) |
| void | setHorizontalScrollBar(QScrollBar *scrollBar) |
| void | setHorizontalScrollBarPolicy(Qt::ScrollBarPolicy) |
| void | setSizeAdjustPolicy(QAbstractScrollArea::SizeAdjustPolicy policy) |
| void | setVerticalScrollBar(QScrollBar *scrollBar) |
| void | setVerticalScrollBarPolicy(Qt::ScrollBarPolicy) |
| void | setViewport(QWidget *widget) |
| virtual void | setupViewport(QWidget *viewport) |
| QAbstractScrollArea::SizeAdjustPolicy | sizeAdjustPolicy() const |
| QScrollBar * | verticalScrollBar() const |
| Qt::ScrollBarPolicy | verticalScrollBarPolicy() const |
| QWidget * | viewport() const |
Fonctions publiques réimplémentées
| virtual QSize | minimumSizeHint() const override |
| virtual QSize | sizeHint() const override |
Fonctions protégées
| virtual void | scrollContentsBy(int dx, int dy) |
| void | setViewportMargins(const QMargins &margins) |
| void | setViewportMargins(int left, int top, int right, int bottom) |
| virtual bool | viewportEvent(QEvent *event) |
| QMargins | viewportMargins() const |
| virtual QSize | viewportSizeHint() const |
Fonctions protégées réimplémentées
| virtual void | contextMenuEvent(QContextMenuEvent *e) override |
| virtual void | dragEnterEvent(QDragEnterEvent *event) override |
| virtual void | dragLeaveEvent(QDragLeaveEvent *event) override |
| virtual void | dragMoveEvent(QDragMoveEvent *event) override |
| virtual void | dropEvent(QDropEvent *event) override |
| virtual bool | event(QEvent *event) override |
| virtual void | keyPressEvent(QKeyEvent *e) 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 *event) override |
| virtual void | resizeEvent(QResizeEvent *event) override |
| virtual void | wheelEvent(QWheelEvent *e) override |
Description détaillée
QAbstractScrollArea est une abstraction de bas niveau d'une zone de défilement. Cette zone fournit un widget central appelé « fenêtre d'affichage », dans lequel le contenu de la zone peut être fait défiler (c'est-à-dire que les parties visibles du contenu sont affichées dans la fenêtre d'affichage).
À côté de la fenêtre d'affichage se trouve une barre de défilement verticale, et en dessous, une barre de défilement horizontale. Lorsque l’intégralité du contenu de la zone tient dans la fenêtre d’affichage, chaque barre de défilement peut être visible ou masquée en fonction de l’ Qt::ScrollBarPolicy de la barre de défilement. Lorsqu’une barre de défilement est masquée, la fenêtre d’affichage s’étend afin de couvrir tout l’espace disponible. Lorsqu’une barre de défilement redevient visible, la fenêtre d’affichage se rétrécit afin de laisser de la place à la barre de défilement.
Il est possible de réserver une zone de marge autour de la fenêtre d’affichage, voir setViewportMargins(). Cette fonctionnalité est principalement utilisée pour placer un widget QHeaderView au-dessus ou à côté de la zone de défilement. Les sous-classes de QAbstractScrollArea doivent implémenter les marges.
Lorsque vous héritez de QAbstractScrollArea, vous devez procéder comme suit :
- Contrôler les barres de défilement en définissant leur plage, leur valeur, le pas de page et en suivant leurs mouvements.
- Dessiner le contenu de la zone dans la fenêtre d'affichage en fonction des valeurs des barres de défilement.
- Gérer les événements reçus par la fenêtre d'affichage dans ` viewportEvent()` — notamment les événements de redimensionnement.
- Utiliser `
viewport->update()` pour mettre à jour le contenu de la fenêtre d’affichage plutôt que ` update()` car toutes les opérations de dessin s’effectuent sur la fenêtre d’affichage.
Avec une politique de barres de défilement définie sur ` Qt::ScrollBarAsNeeded ` (valeur par défaut), `QAbstractScrollArea` affiche les barres de défilement lorsqu’elles offrent une plage de défilement non nulle, et les masque dans le cas contraire.
Les barres de défilement et la fenêtre d’affichage doivent être mises à jour chaque fois que la fenêtre d’affichage reçoit un événement de redimensionnement ou que la taille du contenu change. La fenêtre d’affichage doit également être mise à jour lorsque les valeurs des barres de défilement changent. Les valeurs initiales des barres de défilement sont souvent définies lorsque la zone reçoit un nouveau contenu.
Voici un exemple simple dans lequel nous avons implémenté une zone de défilement capable de faire défiler n’importe quel QWidget. Nous faisons du widget un enfant de la fenêtre d’affichage ; ainsi, nous n’avons pas à calculer quelle partie du widget dessiner, mais pouvons simplement déplacer le widget à l’aide de QWidget::move(). Lorsque le contenu de la zone ou la taille de la fenêtre d’affichage change, nous procédons comme suit :
QSize areaSize = viewport()->size();
QSize widgetSize = widget->size();
verticalScrollBar()->setPageStep(areaSize.height());
horizontalScrollBar()->setPageStep(areaSize.width());
verticalScrollBar()->setRange(0, widgetSize.height() - areaSize.height());
horizontalScrollBar()->setRange(0, widgetSize.width() - areaSize.width());
updateWidgetPosition();Lorsque les barres de défilement changent de valeur, nous devons mettre à jour la position du widget, c'est-à-dire déterminer la partie du widget qui doit être dessinée dans la fenêtre d'affichage :
int hvalue = horizontalScrollBar()->value();
int vvalue = verticalScrollBar()->value();
QPoint topLeft = viewport()->rect().topLeft();
widget->move(topLeft.x() - hvalue, topLeft.y() - vvalue);Afin de suivre les mouvements des barres de défilement, réimplémentez la fonction virtuelle ` scrollContentsBy()`. Pour affiner le comportement de défilement, connectez-vous au signal ` QAbstractSlider::actionTriggered()` d’une barre de défilement et ajustez la ` QAbstractSlider::sliderPosition ` comme vous le souhaitez.
Pour plus de commodité, QAbstractScrollArea rend tous les événements de la fenêtre d’affichage disponibles dans le gestionnaire virtuel viewportEvent(). Les gestionnaires spécialisés de QWidget sont remappés vers des événements de la fenêtre d’affichage lorsque cela s’avère pertinent. Les gestionnaires spécialisés remappés sont : ` paintEvent()`, ` mousePressEvent()`, ` mouseReleaseEvent()`, ` mouseDoubleClickEvent()`, ` mouseMoveEvent()`, ` wheelEvent()`, ` dragEnterEvent()`, ` dragMoveEvent()`, ` dragLeaveEvent()`, ` dropEvent()`, ` contextMenuEvent()` et ` resizeEvent()`.
QScrollArea, qui hérite de QAbstractScrollArea, permet un défilement fluide pour n’importe quelle zone de défilement ( QWidget ) (c’est-à-dire que le widget défile pixel par pixel). Vous n’avez besoin de créer une sous-classe de QAbstractScrollArea que si vous avez besoin d’un comportement plus spécialisé. C’est le cas, par exemple, si l’ensemble du contenu de la zone ne se prête pas à un affichage sur une QWidget ou si vous ne souhaitez pas de défilement fluide.
Voir également QScrollArea.
Documentation sur les types de membres
enum QAbstractScrollArea::SizeAdjustPolicy
Cette énumération spécifie comment l'indication de taille de l'QAbstractScrollArea e doit s'ajuster lorsque la taille de la fenêtre d'affichage change.
| Constante | Valeur | Description |
|---|---|---|
QAbstractScrollArea::AdjustIgnored | 0 | La zone de défilement se comportera comme auparavant, sans aucun ajustement. |
QAbstractScrollArea::AdjustToContents | 2 | La zone de défilement s’adaptera toujours à la fenêtre d’affichage |
QAbstractScrollArea::AdjustToContentsOnFirstShow | 1 | La zone de défilement s'adaptera à sa fenêtre d'affichage lors de sa première apparition. |
Documentation de la propriété
horizontalScrollBarPolicy : Qt::ScrollBarPolicy
Cette propriété définit la politique relative à la barre de défilement horizontale
La règle par défaut est « Qt::ScrollBarAsNeeded ».
Fonctions d’accès :
| Qt::ScrollBarPolicy | horizontalScrollBarPolicy() const |
| void | setHorizontalScrollBarPolicy(Qt::ScrollBarPolicy) |
Voir également « verticalScrollBarPolicy ».
sizeAdjustPolicy : SizeAdjustPolicy
Cette propriété définit la règle décrivant comment la taille de la zone de défilement évolue lorsque la taille de la fenêtre d'affichage change.
La règle par défaut est « QAbstractScrollArea::AdjustIgnored ». La modification de cette propriété peut entraîner un redimensionnement de la zone de défilement.
Fonctions d'accès :
| QAbstractScrollArea::SizeAdjustPolicy | sizeAdjustPolicy() const |
| void | setSizeAdjustPolicy(QAbstractScrollArea::SizeAdjustPolicy policy) |
verticalScrollBarPolicy : Qt::ScrollBarPolicy
Cette propriété définit la politique relative à la barre de défilement verticale
La règle par défaut est « Qt::ScrollBarAsNeeded ».
Fonctions d'accès :
| Qt::ScrollBarPolicy | verticalScrollBarPolicy() const |
| void | setVerticalScrollBarPolicy(Qt::ScrollBarPolicy) |
Voir également « horizontalScrollBarPolicy ».
Documentation des fonctions membres
[explicit] QAbstractScrollArea::QAbstractScrollArea(QWidget *parent = nullptr)
Crée une fenêtre d'affichage.
L'argument « parent » est transmis au constructeur « QWidget ».
[virtual noexcept] QAbstractScrollArea::~QAbstractScrollArea()
Supprime la fenêtre d'affichage.
void QAbstractScrollArea::addScrollBarWidget(QWidget *widget, Qt::Alignment alignment)
Ajoute un widget de barre de défilement de type « widget » à l'emplacement spécifié par « alignment ».
Les widgets de barre de défilement s'affichent à côté de la barre de défilement horizontale ou verticale, et peuvent être placés de chaque côté de celle-ci. Si vous souhaitez que les widgets de barre de défilement soient toujours visibles, définissez la propriété `scrollBarPolicy` de la barre de défilement correspondante sur ` AlwaysOn`.
alignment La valeur doit être l’une des suivantes : Qt::Alignleft et Qt::AlignRight, qui correspondent à la barre de défilement horizontale, ou Qt::AlignTop et Qt::AlignBottom, qui correspondent à la barre de défilement verticale.
Un widget de barre de défilement peut être supprimé soit en modifiant son parent, soit en le supprimant. Il est également possible de masquer un widget à l’aide de ` QWidget::hide()`
Le widget de barre de défilement sera redimensionné pour s’adapter à la géométrie de la barre de défilement du style actuel. Ce qui suit décrit le cas des widgets de barre de défilement sur la barre de défilement horizontale :
La hauteur du widget sera définie pour correspondre à celle de la barre de défilement. Pour contrôler la largeur du widget, utilisez ` QWidget::setMinimumWidth ` et ` QWidget::setMaximumWidth`, ou implémentez ` QWidget::sizeHint()` et définissez une politique de taille horizontale. Si vous souhaitez un widget carré, appelez ` QStyle::pixelMetric` (QStyle::PM_ScrollBarExtent) et définissez la largeur sur cette valeur.
Voir également scrollBarWidgets().
[override virtual protected] void QAbstractScrollArea::contextMenuEvent(QContextMenuEvent *e)
Réimplémentation de : QWidget::contextMenuEvent(QContextMenuEvent *event).
Ce gestionnaire d’événements peut être réimplémenté dans une sous-classe afin de recevoir les événements du menu contextuel du widget viewport(). L’événement est transmis dans e.
Voir également QWidget::contextMenuEvent().
QWidget *QAbstractScrollArea::cornerWidget() const
Renvoie le widget situé dans le coin entre les deux barres de défilement.
Par défaut, aucun widget de coin n'est présent.
Voir aussi setCornerWidget().
[override virtual protected] void QAbstractScrollArea::dragEnterEvent(QDragEnterEvent *event)
Réimplémentation de : QWidget::dragEnterEvent(QDragEnterEvent *event).
Ce gestionnaire d'événements peut être réimplémenté dans une sous-classe afin de recevoir les événements de début de glissement (transmis via event), pour le widget viewport().
Voir également QWidget::dragEnterEvent().
[override virtual protected] void QAbstractScrollArea::dragLeaveEvent(QDragLeaveEvent *event)
Réimplémentation de : QWidget::dragLeaveEvent(QDragLeaveEvent *event).
Ce gestionnaire d'événements peut être réimplémenté dans une sous-classe afin de recevoir les événements de sortie de glissement (transmis via event), pour le widget viewport().
Voir également QWidget::dragLeaveEvent().
[override virtual protected] void QAbstractScrollArea::dragMoveEvent(QDragMoveEvent *event)
Réimplémentation de : QWidget::dragMoveEvent(QDragMoveEvent *event).
Ce gestionnaire d'événements peut être réimplémenté dans une sous-classe afin de recevoir les événements de déplacement par glissement (transmis via event), pour le widget viewport().
Voir également QWidget::dragMoveEvent().
[override virtual protected] void QAbstractScrollArea::dropEvent(QDropEvent *event)
Réimplémentation de : QWidget::dropEvent(QDropEvent *event).
Ce gestionnaire d'événements peut être réimplémenté dans une sous-classe afin de recevoir les événements de dépôt (transmis via event), pour le widget viewport().
Voir également QWidget::dropEvent().
[override virtual protected] bool QAbstractScrollArea::event(QEvent *event)
Réimplémente : QFrame::event(QEvent *e).
Il s'agit du gestionnaire d'événements principal du widget QAbstractScrollArea (etnon de la zone de défilement viewport()). L'event spécifié est un objet d'événement générique qui peut nécessiter un transtypage vers la classe appropriée en fonction de son type.
Voir également QEvent::type().
QScrollBar *QAbstractScrollArea::horizontalScrollBar() const
Affiche la barre de défilement horizontale.
Voir également setHorizontalScrollBar(), horizontalScrollBarPolicy et verticalScrollBar().
[override virtual protected] void QAbstractScrollArea::keyPressEvent(QKeyEvent *e)
Réimplémente : QWidget::keyPressEvent(QKeyEvent *event).
Cette fonction est appelée avec l'e d'événement de touche lorsqu'une touche est enfoncée. Elle gère les touches Page précédente, Page suivante, Haut, Bas, Gauche et Droite, et ignore toutes les autres touches.
QSize QAbstractScrollArea::maximumViewportSize() const
Renvoie la taille de la fenêtre d'affichage comme si les barres de défilement n'avaient aucune plage de défilement valide.
[override virtual] QSize QAbstractScrollArea::minimumSizeHint() const
Réimplémente une fonction d'accès pour la propriété : QWidget::minimumSizeHint.
[override virtual protected] void QAbstractScrollArea::mouseDoubleClickEvent(QMouseEvent *e)
Réimplémente : QWidget::mouseDoubleClickEvent(QMouseEvent *event).
Ce gestionnaire d'événements peut être réimplémenté dans une sous-classe afin de recevoir les événements de double-clic de la souris pour le widget viewport(). L'événement est transmis dans e.
Voir également QWidget::mouseDoubleClickEvent().
[override virtual protected] void QAbstractScrollArea::mouseMoveEvent(QMouseEvent *e)
Réimplémente : QWidget::mouseMoveEvent(QMouseEvent *event).
Ce gestionnaire d’événements peut être réimplémenté dans une sous-classe afin de recevoir les événements de déplacement de la souris pour le widget viewport(). L’événement est transmis dans e.
Voir également QWidget::mouseMoveEvent().
[override virtual protected] void QAbstractScrollArea::mousePressEvent(QMouseEvent *e)
Réimplémente : QWidget::mousePressEvent(QMouseEvent *event).
Ce gestionnaire d'événements peut être réimplémenté dans une sous-classe afin de recevoir les événements de clic de souris pour le widget viewport(). L'événement est transmis dans e.
L'implémentation par défaut appelle QWidget::mousePressEvent() pour la gestion par défaut des fenêtres contextuelles.
Voir également QWidget::mousePressEvent().
[override virtual protected] void QAbstractScrollArea::mouseReleaseEvent(QMouseEvent *e)
Réimplémente : QWidget::mouseReleaseEvent(QMouseEvent *event).
Ce gestionnaire d'événements peut être réimplémenté dans une sous-classe afin de recevoir les événements de relâchement de la souris pour le widget viewport(). L'événement est transmis via e.
Voir également QWidget::mouseReleaseEvent().
[override virtual protected] void QAbstractScrollArea::paintEvent(QPaintEvent *event)
Réimplémente : QFrame::paintEvent(QPaintEvent *).
Ce gestionnaire d'événements peut être réimplémenté dans une sous-classe afin de recevoir les événements de dessin (transmis via ` event`), pour le widget ` viewport()`.
Voir également QWidget::paintEvent().
[override virtual protected] void QAbstractScrollArea::resizeEvent(QResizeEvent *event)
Réimplémentation de : QWidget::resizeEvent(QResizeEvent *event).
Ce gestionnaire d’événements peut être réimplémenté dans une sous-classe afin de recevoir les événements de redimensionnement (transmis via event), pour le widget viewport().
Lorsque resizeEvent() est appelé, la fenêtre d'affichage possède déjà sa nouvelle géométrie : sa nouvelle taille est accessible via la fonction QResizeEvent::size(), et l'ancienne taille via QResizeEvent::oldSize().
Voir également QWidget::resizeEvent().
QWidgetList QAbstractScrollArea::scrollBarWidgets(Qt::Alignment alignment)
Renvoie une liste des widgets de barre de défilement actuellement définis. La valeur de ` alignment ` peut correspondre à n'importe quelle combinaison des quatre indicateurs d'emplacement.
Voir également addScrollBarWidget().
[virtual protected] void QAbstractScrollArea::scrollContentsBy(int dx, int dy)
Ce gestionnaire virtuel est appelé lorsque les barres de défilement sont déplacées par les méthodes ` dx` et ` dy` ; le contenu de la fenêtre d'affichage doit alors être mis à jour en conséquence.
L'implémentation par défaut appelle simplement ` update()` sur l'ensemble de ` viewport()`. Les sous-classes peuvent réimplémenter ce gestionnaire à des fins d'optimisation, ou — comme dans le cas de ` QScrollArea ` — pour déplacer un widget de contenu. Les paramètres ` dx ` et ` dy ` sont fournis à titre pratique, afin que la classe sache de combien il faut faire défiler le contenu (ce qui est utile, par exemple, lors de décalages en pixels). Vous pouvez tout aussi bien ignorer ces valeurs et faire défiler directement jusqu’à la position indiquée par les barres de défilement.
Appeler cette fonction pour effectuer un défilement par programmation constitue une erreur ; utilisez plutôt les barres de défilement (par exemple en appelant directement QScrollBar::setValue()).
void QAbstractScrollArea::setCornerWidget(QWidget *widget)
Définit le widget situé dans le coin entre les deux barres de défilement sur « widget ».
Vous souhaiterez probablement aussi définir au moins l'un des modes de barre de défilement sur « AlwaysOn ».
Si vous passez la valeur « nullptr », aucun widget n'apparaîtra dans le coin.
Tout widget de coin précédent est masqué.
Vous pouvez appeler setCornerWidget() avec le même widget à différents moments.
Tous les widgets définis ici seront supprimés par la zone de défilement lors de sa destruction, à moins que vous ne redéfinissiez séparément le parent du widget après avoir défini un autre widget de coin (ou nullptr).
Tout widget nouvellement défini ne doit pas avoir de parent actuel.
Par défaut, aucun widget de coin n’est présent.
Voir également cornerWidget() et horizontalScrollBarPolicy.
void QAbstractScrollArea::setHorizontalScrollBar(QScrollBar *scrollBar)
Remplace la barre de défilement horizontale existante par scrollBar et attribue toutes les propriétés du curseur de l'ancienne barre de défilement à la nouvelle barre de défilement. L'ancienne barre de défilement est ensuite supprimée.
QAbstractScrollArea fournit déjà par défaut des barres de défilement horizontales et verticales. Vous pouvez appeler cette fonction pour remplacer la barre de défilement horizontale par défaut par votre propre barre de défilement personnalisée.
Voir également horizontalScrollBar() et setVerticalScrollBar().
void QAbstractScrollArea::setVerticalScrollBar(QScrollBar *scrollBar)
Remplace la barre de défilement verticale existante par scrollBar et attribue toutes les propriétés du curseur de l'ancienne barre de défilement à la nouvelle barre de défilement. L'ancienne barre de défilement est ensuite supprimée.
QAbstractScrollArea fournit déjà par défaut des barres de défilement verticales et horizontales. Vous pouvez appeler cette fonction pour remplacer la barre de défilement verticale par défaut par votre propre barre de défilement personnalisée.
Voir également ` verticalScrollBar()` et ` setHorizontalScrollBar()`.
void QAbstractScrollArea::setViewport(QWidget *widget)
Définit la fenêtre d'affichage sur l'widget spécifiée. L'QAbstractScrollArea prendra possession de l'widget spécifiée.
Si widget correspond à nullptr, QAbstractScrollArea attribuera une nouvelle instance de QWidget à la fenêtre d’affichage.
Voir également viewport().
[protected] void QAbstractScrollArea::setViewportMargins(const QMargins &margins)
Définit l'margins e autour de la zone de défilement. Cette fonctionnalité est utile pour des applications telles que les tableurs comportant des lignes et des colonnes « verrouillées ». L'espace marginal est laissé vide ; placez les widgets dans la zone inutilisée.
Par défaut, toutes les marges sont égales à zéro.
Voir aussi ` viewportMargins()`.
[protected] void QAbstractScrollArea::setViewportMargins(int left, int top, int right, int bottom)
Définit les marges autour de la zone de défilement sur left, top, right et bottom. Cette fonctionnalité est utile pour des applications telles que les tableurs comportant des lignes et des colonnes « verrouillées ». L'espace marginal reste vide ; vous pouvez y placer des widgets.
Notez que cette fonction est fréquemment appelée par QTreeView et QTableView; les marges doivent donc être implémentées par les sous-classes de QAbstractScrollArea. De plus, si les sous-classes doivent être utilisées dans des vues d’éléments, elles ne doivent pas appeler cette fonction.
Par défaut, toutes les marges sont égales à zéro.
Voir également viewportMargins().
[virtual] void QAbstractScrollArea::setupViewport(QWidget *viewport)
Ce slot est appelé par QAbstractScrollArea après l'appel de setViewport(viewport). Réimplémentez cette fonction dans une sous-classe de QAbstractScrollArea afin d'initialiser le nouvel objet viewport avant son utilisation.
Voir également setViewport().
[override virtual] QSize QAbstractScrollArea::sizeHint() const
Réimplémente : ` QFrame::sizeHint()` const.
Renvoie la propriété `sizeHint` de la zone de défilement. La taille est déterminée à l'aide de ` viewportSizeHint()` et d'un espace supplémentaire pour les barres de défilement, si nécessaire.
QScrollBar *QAbstractScrollArea::verticalScrollBar() const
Affiche la barre de défilement verticale.
Voir également setVerticalScrollBar(), verticalScrollBarPolicy et horizontalScrollBar().
QWidget *QAbstractScrollArea::viewport() const
Renvoie le widget de la fenêtre d'affichage.
Utilisez la fonction QScrollArea::widget() pour récupérer le contenu du widget de la fenêtre d'affichage.
Voir également setViewport() et QScrollArea::widget().
[virtual protected] bool QAbstractScrollArea::viewportEvent(QEvent *event)
Le gestionnaire d'événements principal pour la zone de défilement (le widget viewport()). Il gère l'event spécifiée et peut être appelé par des sous-classes afin de fournir un comportement par défaut approprié.
Renvoie true pour indiquer au système d’événements que l’événement a été géré et ne nécessite aucun traitement supplémentaire ; sinon, renvoie false pour indiquer que l’événement doit être propagé plus loin.
Vous pouvez réimplémenter cette fonction dans une sous-classe, mais nous vous recommandons plutôt d’utiliser l’un des gestionnaires d’événements spécialisés.
Les gestionnaires spécialisés pour les événements de la fenêtre d’affichage sont : paintEvent(), mousePressEvent(), mouseReleaseEvent(), mouseDoubleClickEvent(), mouseMoveEvent(), wheelEvent(), dragEnterEvent(), dragMoveEvent(), dragLeaveEvent(), dropEvent(), contextMenuEvent() et resizeEvent().
[protected] QMargins QAbstractScrollArea::viewportMargins() const
Renvoie les marges autour de la zone de défilement. Par défaut, toutes les marges sont égales à zéro.
Voir aussi setViewportMargins().
[virtual protected] QSize QAbstractScrollArea::viewportSizeHint() const
Renvoie la taille recommandée pour la fenêtre d'affichage. L'implémentation par défaut renvoie viewport()->sizeHint(). Notez que cette taille correspond uniquement à celle de la fenêtre d'affichage, sans les barres de défilement visibles.
[override virtual protected] void QAbstractScrollArea::wheelEvent(QWheelEvent *e)
Réimplémente : QWidget::wheelEvent(QWheelEvent *event).
Ce gestionnaire d'événements peut être réimplémenté dans une sous-classe afin de recevoir les événements de molette pour le widget viewport(). L'événement est transmis dans e.
Voir également QWidget::wheelEvent().
© 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.