QAbstractScrollArea Class
Le widget QAbstractScrollArea fournit une zone de défilement avec des barres de défilement à la demande. Plus d'informations...
| En-tête : | #include <QAbstractScrollArea> |
| CMake : | find_package(Qt6 REQUIRED COMPONENTS Widgets)target_link_libraries(mytarget PRIVATE Qt6::Widgets) |
| qmake : | QT += widgets |
| Hérite : | QFrame |
| Inherited By : | 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. La zone fournit un widget central appelé viewport, dans lequel le contenu de la zone doit être défilé (c'est-à-dire que les parties visibles du contenu sont rendues dans le viewport).
À côté de la fenêtre de visualisation se trouve une barre de défilement verticale et, en dessous, une barre de défilement horizontale. Lorsque tout le contenu de la zone tient dans la fenêtre de visualisation, chaque barre de défilement peut être visible ou cachée en fonction de son adresse Qt::ScrollBarPolicy. Lorsqu'une barre de défilement est masquée, la fenêtre s'agrandit afin de couvrir tout l'espace disponible. Lorsqu'une barre de défilement redevient visible, la fenêtre se rétrécit pour faire de la place à la barre de défilement.
Il est possible de réserver une zone de marge autour de la fenêtre, voir setViewportMargins(). Cette fonction 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 effectuer les opérations suivantes :
- Contrôler les barres de défilement en définissant leur portée, leur valeur, leur 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.
- Traiter les événements reçus par la fenêtre de visualisation dans viewportEvent() - notamment les événements de redimensionnement.
- Utiliser
viewport->update()pour mettre à jour le contenu de la fenêtre d'affichage au lieu de update(), car toutes les opérations de peinture ont lieu dans la fenêtre d'affichage.
Avec une politique de barre de défilement de Qt::ScrollBarAsNeeded (par défaut), QAbstractScrollArea affiche les barres de défilement lorsqu'elles offrent une plage de défilement non nulle, et les cache dans le cas contraire.
Les barres de défilement et la fenêtre doivent être mises à jour chaque fois que la fenêtre reçoit un événement de redimensionnement ou que la taille du contenu change. La fenêtre 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.
Nous donnons un exemple simple, dans lequel nous avons mis en œuvre une zone de défilement qui peut faire défiler n'importe quelle page QWidget. Nous faisons du widget un enfant de la fenêtre de visualisation ; ainsi, nous n'avons pas à calculer quelle partie du widget doit être dessinée, mais nous pouvons simplement déplacer le widget à l'aide de QWidget::move(). Lorsque le contenu de la zone ou la taille de la fenêtre 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 trouver la partie du widget qui doit être dessinée dans la fenêtre :
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, nous réimplémentons la fonction virtuelle scrollContentsBy(). Pour affiner le comportement du défilement, connectez-vous au signal QAbstractSlider::actionTriggered() d'une barre de défilement et ajustez le QAbstractSlider::sliderPosition comme vous le souhaitez.
Pour des raisons pratiques, QAbstractScrollArea rend tous les événements de la fenêtre disponibles dans le gestionnaire virtuel viewportEvent(). QWidget Les gestionnaires spécialisés de QAbstractScrollArea sont réaffectés aux événements d'affichage dans les cas où cela s'avère utile. Les gestionnaires spécialisés réaffectés sont les suivants : paintEvent(), mousePressEvent(), mouseReleaseEvent(), mouseDoubleClickEvent(), mouseMoveEvent(), wheelEvent(), dragEnterEvent(), dragMoveEvent(), dragLeaveEvent(), dropEvent(), contextMenuEvent(), et resizeEvent().
QScrollAreaQAbstractScrollArea, qui hérite de QAbstractScrollArea, permet un défilement fluide pour tout QWidget (c'est-à-dire que le widget défile pixel par pixel). Vous ne devez sous-classer 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 peut être dessiné sur une page QWidget ou si vous ne souhaitez pas un défilement fluide.
Voir également QScrollArea.
Documentation sur les types de membres
enum QAbstractScrollArea::SizeAdjustPolicy
Cette énumération spécifie comment l'indice de taille du site QAbstractScrollArea 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 comporte comme auparavant et ne s'ajuste pas. |
QAbstractScrollArea::AdjustToContents | 2 | La zone de défilement s'adaptera toujours à la taille de l'écran. |
QAbstractScrollArea::AdjustToContentsOnFirstShow | 1 | La zone de défilement s'adaptera à la fenêtre d'affichage la première fois qu'elle sera affichée. |
Documentation sur les propriétés
horizontalScrollBarPolicy : Qt::ScrollBarPolicy
Cette propriété contient la politique de la barre de défilement horizontale
La politique 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é contient la politique décrivant comment la taille de la zone de défilement change lorsque la taille de la fenêtre change.
La politique 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é contient la politique de la barre de défilement verticale
La politique par défaut est Qt::ScrollBarAsNeeded.
Fonctions d'accès :
| Qt::ScrollBarPolicy | verticalScrollBarPolicy() const |
| void | setVerticalScrollBarPolicy(Qt::ScrollBarPolicy) |
Voir aussi horizontalScrollBarPolicy.
Documentation des fonctions membres
[explicit] QAbstractScrollArea::QAbstractScrollArea(QWidget *parent = nullptr)
Construit une fenêtre de visualisation.
L'argument parent est envoyé au constructeur QWidget.
[virtual noexcept] QAbstractScrollArea::~QAbstractScrollArea()
Détruit la fenêtre de visualisation.
void QAbstractScrollArea::addScrollBarWidget(QWidget *widget, Qt::Alignment alignment)
Ajoute widget comme widget de barre de défilement à l'emplacement spécifié par alignment.
Les widgets de barre de défilement sont affichés à côté de la barre de défilement horizontale ou verticale et peuvent être placés de part et d'autre de celle-ci. Si vous souhaitez que les widgets de la barre de défilement soient toujours visibles, attribuez la valeur AlwaysOn à la politique de défilement de la barre de défilement correspondante.
alignment doit être l'un de Qt::Alignleft et Qt::AlignRight, qui correspond à la barre de défilement horizontale, ou Qt::AlignTop et Qt::AlignBottom, qui correspond à la barre de défilement verticale.
Un widget de barre de défilement peut être supprimé en lui donnant un nouveau parent ou en le supprimant. Il est également possible de cacher un widget à l'aide de QWidget::hide()
Le widget de la barre de défilement sera redimensionné pour s'adapter à la géométrie de la barre de défilement pour le style actuel. Les paragraphes suivants décrivent le cas des widgets de barre de défilement sur la barre de défilement horizontale :
La hauteur du widget sera réglée pour correspondre à la hauteur 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 fixez la largeur à cette valeur.
Voir aussi scrollBarWidgets().
[override virtual protected] void QAbstractScrollArea::contextMenuEvent(QContextMenuEvent *e)
Réimplémente : QWidget::contextMenuEvent(QContextMenuEvent *event).
Ce gestionnaire d'événements peut être réimplémenté dans une sous-classe pour recevoir les événements du menu contextuel pour le widget viewport(). L'événement est transmis à e.
Voir aussi 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 d'angle n'est présent.
Voir aussi setCornerWidget().
[override virtual protected] void QAbstractScrollArea::dragEnterEvent(QDragEnterEvent *event)
Réimplémente : QWidget::dragEnterEvent(QDragEnterEvent *event).
Ce gestionnaire d'événements peut être réimplémenté dans une sous-classe afin de recevoir les événements d'entrée par glissement (transmis dans event), pour le widget viewport().
Voir également QWidget::dragEnterEvent().
[override virtual protected] void QAbstractScrollArea::dragLeaveEvent(QDragLeaveEvent *event)
Réimplémente : 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 dans event), pour le widget viewport().
Voir également QWidget::dragLeaveEvent().
[override virtual protected] void QAbstractScrollArea::dragMoveEvent(QDragMoveEvent *event)
Réimplémente : QWidget::dragMoveEvent(QDragMoveEvent *event).
Ce gestionnaire d'événements peut être réimplémenté dans une sous-classe pour recevoir les événements de déplacement par glissement (transmis dans event), pour le widget viewport().
Voir également QWidget::dragMoveEvent().
[override virtual protected] void QAbstractScrollArea::dropEvent(QDropEvent *event)
Réimplémente : QWidget::dropEvent(QDropEvent *event).
Ce gestionnaire d'événements peut être réimplémenté dans une sous-classe pour recevoir les événements de chute (transmis dans 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 pour le widget QAbstractScrollArea (et non pour la zone de défilement viewport()). L'objet event spécifié est un objet d'événement général qui peut nécessiter un cast dans la classe appropriée en fonction de son type.
Voir aussi QEvent::type().
QScrollBar *QAbstractScrollArea::horizontalScrollBar() const
Renvoie la barre de défilement horizontale.
Voir aussi 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'événement e lorsqu'une touche est enfoncée. Elle gère les touches PageUp, PageDown, Haut, Bas, Gauche et Droite, et ignore toutes les autres touches.
QSize QAbstractScrollArea::maximumViewportSize() const
Renvoie la taille de la fenêtre comme si les barres de défilement n'avaient pas de plage de défilement valide.
[override virtual] QSize QAbstractScrollArea::minimumSizeHint() const
Réimplémente une fonction d'accès à 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 pour recevoir les événements de double clic de la souris pour le widget viewport(). L'événement est transmis à 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 pour recevoir les événements de déplacement de la souris pour le widget viewport(). L'événement est transmis à 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 pour recevoir les événements de pression de la souris pour le widget viewport(). L'événement est transmis à 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 pour recevoir les événements de relâchement de la souris pour le widget viewport(). L'événement est transmis à 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 pour recevoir les événements de peinture (transmis dans event), pour le widget viewport().
Voir également QWidget::paintEvent().
[override virtual protected] void QAbstractScrollArea::resizeEvent(QResizeEvent *event)
Réimplémente : QWidget::resizeEvent(QResizeEvent *event).
Ce gestionnaire d'événements peut être réimplémenté dans une sous-classe pour recevoir des événements de redimensionnement (transmis à event), pour le widget viewport().
Lorsque resizeEvent() est appelé, la fenêtre de visualisation a 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. alignment peut être n'importe quelle combinaison des quatre drapeaux d'emplacement.
Voir aussi 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 dx, dy, et que le contenu de la fenêtre doit être défilé 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 QScrollArea - pour déplacer un widget de contenu. Les paramètres dx et dy sont là pour des raisons de commodité, afin que la classe sache de combien il faut faire défiler la page (utile, par exemple, en cas de décalage de pixels). Vous pouvez tout aussi bien ignorer ces valeurs et faire défiler le contenu directement jusqu'à la position indiquée par les barres de défilement.
L'appel à cette fonction pour faire défiler la page de manière programmatique est 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 dans le coin entre les deux barres de défilement comme étant widget.
Vous voudrez probablement aussi définir au moins l'un des modes de la barre de défilement sur AlwaysOn.
Si vous passez nullptr, aucun widget n'apparaît dans le coin.
Tout widget de coin précédent est caché.
Vous pouvez appeler setCornerWidget() avec le même widget à plusieurs reprises.
Tous les widgets définis ici seront supprimés par la zone de défilement lorsqu'elle sera détruite, à moins que vous ne répartissiez séparément le 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 définit toutes les propriétés du curseur de l'ancienne barre de défilement sur la nouvelle barre de défilement. L'ancienne barre de défilement est ensuite supprimée.
QAbstractScrollArea fournit déjà des barres de défilement horizontales et verticales par défaut. 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 définit toutes les propriétés du curseur de l'ancienne barre de défilement sur la nouvelle barre de défilement. L'ancienne barre de défilement est ensuite supprimée.
QAbstractScrollArea fournit déjà des barres de défilement verticales et horizontales par défaut. 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 de visualisation comme étant la fenêtre donnée widget. L'instance QAbstractScrollArea devient propriétaire de l'instance widget.
Si widget est nullptr, QAbstractScrollArea attribuera une nouvelle instance QWidget pour la fenêtre de visualisation.
Voir aussi viewport().
[protected] void QAbstractScrollArea::setViewportMargins(const QMargins &margins)
Définit margins autour de la zone de défilement. Cette fonction est utile pour les applications telles que les feuilles de calcul dont les lignes et les colonnes sont "verrouillées". L'espace marginal est laissé vide ; les widgets peuvent être placés dans la zone inutilisée.
Par défaut, toutes les marges sont nulles.
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 à left, top, right et bottom. Cette fonction est utile pour les applications telles que les feuilles de calcul dont les lignes et les colonnes sont "verrouillées". L'espace marginal est laissé vide ; placez des widgets dans la zone inutilisée.
Notez que cette fonction est fréquemment appelée par QTreeView et QTableView, de sorte que les marges doivent être implémentées par les sous-classes de QAbstractScrollArea. En outre, 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 aussi viewportMargins().
[virtual] void QAbstractScrollArea::setupViewport(QWidget *viewport)
Ce slot est appelé par QAbstractScrollArea après que setViewport(viewport) a été appelé. Réimplémentez cette fonction dans une sous-classe de QAbstractScrollArea pour initialiser le nouveau viewport avant qu'il ne soit utilisé.
Voir aussi 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 par l'utilisation de viewportSizeHint() plus un espace supplémentaire pour les barres de défilement, si nécessaire.
QScrollBar *QAbstractScrollArea::verticalScrollBar() const
Renvoie la barre de défilement verticale.
Voir aussi setVerticalScrollBar(), verticalScrollBarPolicy, et horizontalScrollBar().
QWidget *QAbstractScrollArea::viewport() const
Renvoie le widget viewport.
Utilisez la fonction QScrollArea::widget() pour récupérer le contenu du widget viewport.
Voir aussi 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 le event spécifié et peut être appelé par des sous-classes pour fournir un comportement par défaut raisonnable.
Elle renvoie true pour indiquer au système d'événements que l'événement a été traité et ne nécessite pas d'autre traitement ; sinon, elle 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 d'utiliser plutôt l'un des gestionnaires d'événements spécialisés.
Les gestionnaires spécialisés pour les événements viewport sont les suivants : 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 nulles.
Voir aussi setViewportMargins().
[virtual protected] QSize QAbstractScrollArea::viewportSizeHint() const
Renvoie la taille recommandée pour la fenêtre de visualisation. L'implémentation par défaut renvoie viewport()->sizeHint(). Notez que la taille est simplement celle de la fenêtre d'affichage, sans 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 pour recevoir les événements de roue pour le widget viewport(). L'événement est transmis à 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.