QTouchEventLa classe QTouchEvent contient des paramètres qui décrivent un évènement de toucher. Plus d'informations... #include <QTouchEvent> Voir la position dans l'arbre des classes. HéritageHérite de QInputEvent. Cette classe a été introduite dans Qt 4.6. Description détailléeLa classe QTouchEvent contient des paramètres qui décrivent un évènement de toucher. Activation des évènements de toucherLes évènements de toucher se produisent lors d'une pression, d'un relâchement ou d'un mouvement d'un ou plusieurs points de toucher sur un appareil tactile (comme un écran tactile ou track-pad). Pour recevoir des évènements de toucher, les widgets doivent avoir l'attribut Qt::WA_AcceptTouchEvents à true et les éléments graphiques doivent avoir l'attribut acceptTouchEvents défini à true. Lors de l'utilisation de widgets basés sur QAbstractScrollArea, vous devez activer l'attribut Qt::WA_AcceptTouchEvents sur le viewport de la zone de défilement. Comme pour QMouseEvent, Qt capte automatiquement un point de toucher dès la première pression à l'intérieur d'un widget, et le widget recevra toutes les mises à jour du point de toucher jusqu'à ce que ce dernier soit relâché. Notez qu'il est possible pour un widget de recevoir des évènements pour de nombreux points de toucher. Notez aussi que de multiples widgets peuvent recevoir des évènements de toucher en même temps. Gestion des évènementsTous les évènements de toucher sont du type QEvent::TouchBegin, QEvent::TouchUpdate ou QEvent::TouchEnd. Réimplémentez QWidget::event() ou QAbstractScrollArea::viewportEvent() pour les widgets et QGraphicsItem::sceneEvent() pour les éléments présents dans une vue graphique pour la réception d'évènements de toucher. Les évènements QEvent::TouchUpdate et QEvent::TouchEnd sont envoyés au widget ou à l'élément qui a accepté l'évènement QEvent::TouchBegin. Si l'évènement QEvent::TouchBegin n'est pas accepté ni filtré par un filtre d'évènements, alors aucun autre évènement de toucher ne sera envoyé jusqu'au prochain QEvent::TouchBegin. La fonction touchPoints() retourne une liste de tous les points de toucher contenus dans le widget. Des informations à propos de chaque point de toucher peuvent être récupérées en utilisant la classe QTouchEvent::TouchPoint. L'énumération Qt::TouchPointState décrit les différents états qu'un point de toucher peut avoir. Livraison et propagation d'évènementsPar défaut, QWidget::event() traduit le premier point de toucher non primaire dans un QTouchEvent à l'intérieur d'un QMouseEvent. Cela permet d'autoriser les évènements de toucher dans les widgets existants qui ne gèrent normalement pas QTouchEvent. Voir ci-dessous pour plus d'informations sur certaines considérations spéciales nécessaires lors d'une telle action. QEvent::TouchBegin est le premier évènement de toucher envoyé à un widget. L'évènement QEvent::TouchBegin contient un drapeau spécial d'admission d'évènement qui indique si le receveur veut ou non de l'évènement. Par défaut, l'évènement est accepté. Vous devez appeler ignore() si l'évènement de toucher n'est pas géré par votre widget. L'évènement QEvent::TouchBegin est propagé dans la file des widgets parents jusqu'à ce qu'un widget l'accepte avec accept(), ou bien jusqu'à ce qu'un filtre d'évènements le considère. Pour les QGraphicsItem, l'évènement QEvent::TouchBegin est propagé aux éléments sous la souris (identique à la propagation des évènements de souris pour les QGraphicsItem). Groupement de points de toucherComme mentionné plus haut, il est possible que plusieurs widgets reçoivent des QTouchEvent en même temps. Cependant, Qt assure ne jamais délivrer de doublons des évènements QEvent::TouchBegin au même widget. Ces doublons doivent théoriquement se produire durant la propagation si, par exemple, l'utilisateur a touché deux widgets séparés dans un QGroupBox et que les deux widgets ont ignoré l'évènement QEvent::TouchBegin. Pour éviter cela, Qt va grouper les nouveaux points de toucher ensemble en utilisant les règles suivantes :
Cela rend possible que plusieurs widgets d'un même parent puissent gérer les évènements de toucher indépendamment, tout en assurant que la séquence de QTouchEvent soit toujours correcte. Les évènements de souris et les points de toucher primairesLa livraison de QTouchEvent est indépendante de celle de QMouseEvent. Sur certains systèmes de fenêtrage, les évènements de souris sont aussi envoyés depuis le point de toucher primaire. Cela signifie qu'il est possible pour votre widget de recevoir à la fois des évènements de QTouchEvent et de QMouseEvent pour un même point d'interaction avec l'utilisateur. Vous pouvez utiliser la fonction QTouchEvent::TouchPoint::isPrimary() pour identifier le point de toucher primaire. Notez que sous certains systèmes de fenêtrage, il est possible de recevoir des évènements de toucher sans point de toucher primaire. Tout cela signifie qu'il n'y aura pas d'évènement de souris généré pour les points de toucher dans le QTouchEvent. Mises en garde
Voir aussi QTouchEvent::TouchPoint, Qt::TouchPointState, Qt::WA_AcceptTouchEvents et QGraphicsItem::acceptTouchEvents(). Typeenum QTouchEvent::DeviceTypeCette énumération représente le type du matériel qui a généré un QTouchEvent.
Fonctions membresQTouchEvent::QTouchEvent ( QEvent::Type eventType, QTouchEvent::DeviceType deviceType = TouchScreen, Qt::KeyboardModifiers modifiers = Qt::NoModifier, Qt::TouchPointStates touchPointStates = 0, const QList<QTouchEvent::TouchPoint> & touchPoints = QList<QTouchEvent::TouchPoint> () )Construit un QTouchEvent avec les eventType, deviceType et touchPoints donnés. Les touchPointStates et modifiers sont les états du point de toucher actuel et les modificateurs de clavier au moment de l'évènement. QTouchEvent::~QTouchEvent ()Détruit le QTouchEvent. QTouchEvent::DeviceType QTouchEvent::deviceType () constRetourne le Type de matériel de toucher, qui est de type DeviceType. Qt::TouchPointStates QTouchEvent::touchPointStates () constRetourne une opération binaire OU de tous les états de points de toucher pour cet évènement. const QList<QTouchEvent::TouchPoint> & QTouchEvent::touchPoints () constRetourne la liste des points de toucher contenus dans l'évènement de toucher. QWidget * QTouchEvent::widget () constRetourne le widget sur lequel l'évènement s'est produit. RemerciementsMerci à Louis du Verdier pour la traduction et à Jonathan Courtois ainsi qu'à Claude Leloup pour leur relecture ! |
Cette page est une traduction d'une page de la documentation de Qt, écrite par Nokia Corporation and/or its subsidiary(-ies). Les éventuels problèmes résultant d'une mauvaise traduction ne sont pas imputables à Nokia. | Qt 4.7 | |
Copyright © 2024 Developpez LLC. Tous droits réservés Developpez LLC. Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation expresse de Developpez LLC. Sinon, vous encourez selon la loi jusqu'à 3 ans de prison et jusqu'à 300 000 E de dommages et intérêts. Cette page est déposée à la SACD. | ||
Vous avez déniché une erreur ? Un bug ? Une redirection cassée ? Ou tout autre problème, quel qu'il soit ? Ou bien vous désirez participer à ce projet de traduction ? N'hésitez pas à nous contacter ou par MP ! |