QContextMenuEvent Class
La classe QContextMenuEvent contient des paramètres qui décrivent un événement de menu contextuel. Plus d'informations...
| En-tête : | #include <QContextMenuEvent> |
| CMake : | find_package(Qt6 REQUIRED COMPONENTS Gui)target_link_libraries(mytarget PRIVATE Qt6::Gui) |
| qmake : | QT += gui |
| Héritages : | QInputEvent |
- Liste de tous les membres, y compris les membres hérités
- Membres dépréciés
- QContextMenuEvent fait partie de Event Classes.
Types publics
| enum | Reason { Mouse, Keyboard, Other } |
Fonctions publiques
| QContextMenuEvent(QContextMenuEvent::Reason reason, const QPoint &pos, const QPoint &globalPos, Qt::KeyboardModifiers modifiers = Qt::NoModifier) | |
| const QPoint & | globalPos() const |
| int | globalX() const |
| int | globalY() const |
| const QPoint & | pos() const |
| QContextMenuEvent::Reason | reason() const |
| int | x() const |
| int | y() const |
Description détaillée
Un événement de menu contextuel est envoyé lorsqu'un utilisateur effectue une action qui devrait ouvrir un menu contextuel :
- en cliquant sur le bouton droit de la souris
- en appuyant sur une touche de menu dédiée du clavier (si le clavier en possède une, comme la touche de menu sur les claviers PC standard à 104 touches)
- en appuyant sur un autre raccourci clavier (tel que "Ctrl+Return" par défaut sur macOS 15 et les versions plus récentes).
Le menu contextuel attendu doit contenir actions qui sont pertinents pour un certain contenu de l'application (le "contexte"). Dans Qtt, le contexte est au moins le widget ou Qt Quick Item particulier qui reçoit le QContextMenuEvent. S'il y a une sélection, elle devrait probablement être considérée comme le contexte. Le contexte peut être affiné en utilisant QContextMenuEvent::pos() pour préciser le contenu du widget, de l'élément ou de la sélection.
Les widgets peuvent surcharger QWidget::contextMenuEvent() pour gérer cet événement. De nombreux widgets le font déjà et disposent par défaut de menus contextuels utiles. Certains widgets disposent d'une fonction telle que createStandardContextMenu() pour remplir l'ensemble des actions par défaut dans un QMenu, qui peut être personnalisé dans votre sous-classe, puis affiché.
Dans Qt Quick, l'événement peut être géré via la propriété ContextMenu attached. Certains contrôles QtQuick.Controls proposent déjà des menus contextuels par défaut.
Contrairement à la plupart des événements synthétiques (tels qu'un QMouseEvent envoyé uniquement après qu'un QTouchEvent ou QTabletEvent n'a pas été accepté), QContextMenuEvent est envoyé indépendamment du fait que l'événement souris ou touche d'origine a déjà été traité et accepted. Cela permet de s'adapter au modèle d'interface utilisateur de Windows, qui consiste à sélectionner certains types d'éléments (icônes, éléments de dessin ou cellules dans une vue d'élément) à l'aide du bouton droit de la souris (en cliquant ou en glissant), puis à obtenir un menu contextuel dès que l'on relâche le bouton droit de la souris. (Les actions du menu sont censées s'appliquer à la sélection.) Par conséquent, sous Windows, l'événement QContextMenuEvent est envoyé au relâchement de la souris, tandis que sur d'autres plateformes, il est envoyé à l'appui. Qt XML suit le platform convention par défaut.
Il existe également des contrôles Qt Quick, tels que Pane, qui acceptent les événements de la souris et reçoivent néanmoins un QContextMenuEvent après une pression ou un clic de la souris.
Si vous préférez prendre en charge le modèle d'interface utilisateur "appuyer-glisser-relâcher" pour ouvrir un menu contextuel lors de l'appui, et glisser sur un élément de menu pour le sélectionner lors du relâchement, vous devrez le faire en gérant directement QMouseEvents (en remplaçant virtual functions dans les sous-classes QWidget, ou en utilisant TapHandler pour ouvrir un Menu dans Qt Quick) ; et alors le QContextMenuEvent sera redondant lorsque le reason() est Mouse. Dans ce cas, vous devez ignore() l'événement ; mais vous devez toujours vous assurer que le widget, le contrôle personnalisé ou l'application peut répondre à un QContextMenuEvent qui comes from le raccourci clavier spécifique à la plate-forme.
Lorsqu'un QContextMenuEvent est ignored, Qtt tente de le délivrer à d'autres widgets et/ou Items sous le position (qui est généralement traduit à partir de la position du curseur).
Documentation sur les types de membres
enum QContextMenuEvent::Reason
Cette énumération décrit la raison pour laquelle l'événement a été envoyé.
| Constante | Valeur | Description de l'événement |
|---|---|---|
QContextMenuEvent::Mouse | 0 | La souris a provoqué l'envoi de l'événement. Normalement, cela signifie que le bouton droit de la souris a été cliqué, mais cela dépend de la plate-forme. |
QContextMenuEvent::Keyboard | 1 | Le clavier a provoqué l'envoi de cet événement. Sous Windows, cela signifie que le bouton de menu a été enfoncé. |
QContextMenuEvent::Other | 2 | L'événement a été envoyé par un autre moyen (c'est-à-dire ni par la souris ni par le clavier). |
Documentation des fonctions membres
QContextMenuEvent::QContextMenuEvent(QContextMenuEvent::Reason reason, const QPoint &pos, const QPoint &globalPos, Qt::KeyboardModifiers modifiers = Qt::NoModifier)
Construit un objet d'événement de menu contextuel avec l'indicateur de paramètre d'acceptation fixé à false.
Le paramètre reason doit être QContextMenuEvent::Mouse ou QContextMenuEvent::Keyboard.
Le paramètre pos spécifie la position de la souris par rapport au widget récepteur. globalPos est la position de la souris en coordonnées absolues. Le paramètre modifiers contient les modificateurs de clavier.
const QPoint &QContextMenuEvent::globalPos() const
Renvoie la position globale du pointeur de la souris au moment de l'événement.
int QContextMenuEvent::globalX() const
Renvoie la position x globale du pointeur de la souris au moment de l'événement.
Voir aussi globalY() et globalPos().
int QContextMenuEvent::globalY() const
Renvoie la position globale en y du pointeur de la souris au moment de l'événement.
Voir aussi globalX() et globalPos().
const QPoint &QContextMenuEvent::pos() const
Renvoie la position du pointeur de la souris par rapport au widget qui a reçu l'événement.
Remarque : si l'événement QContextMenuEvent ne provient pas du bouton droit de la souris, pos() peut être null.
Voir aussi x(), y() et globalPos().
QContextMenuEvent::Reason QContextMenuEvent::reason() const
Renvoie la raison de cet événement contextuel.
int QContextMenuEvent::x() const
Renvoie la position x du pointeur de la souris, par rapport au widget qui a reçu l'événement.
int QContextMenuEvent::y() const
Renvoie la position y du pointeur de la souris, par rapport au widget qui a reçu l'événement.
© 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.