IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Qt Discussion :

Intercepter le signal click sur un QWebView


Sujet :

Qt

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    61
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2004
    Messages : 61
    Par défaut Intercepter le signal click sur un QWebView
    Bonjour,

    Je suis nouveau sur Qt.

    Je cherche à capter le signal "click" sur un QWebView.

    Mon but est de détecter un "triple click" dans un champs d'un formulaire pour pouvoir le remplir automatiquement par après.
    (voir: http://www.developpez.net/forums/d78...ouche-clavier/)

    Sous Windows j'utilisais un composant basé sur Internet Explorer et j'ai du mettre un hook global à l'application pour détecter ca.

    Une solution serait peut être d'afficher un QWidget transparent au dessus du QWebView, de détecter les click dedans et de forwarder tous ses event vers le QWebView. Possible ? Y a t'il une autre solution ?

    Merci d'avance pour vos réponse

  2. #2
    Membre expérimenté
    Avatar de Niak74
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    271
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations forums :
    Inscription : Juin 2007
    Messages : 271
    Par défaut
    QWebView dérive de QWidget, donc possède les méthodes mousePressEvent et mouseReleaseEvent.

    Qt propose le support pour la détection du double clic, pas pour le triple.

    Je pense que le plus simple est de faire une classe héritant de QWebView (et donc de QWidget), de surcharger la méthode mousePressEvent et de définir comment traiter les différents clics reçu.

    Tu peux par exemple détecter ton triple clic via un timer interne (voir QObject::startTimer et QObject::killTimer) : tu le déclenche avec l'intervalle de détection d'un triple clic voulu (1000ms par exemple) lorsque qu'un clic est reçu, tu passes un attribut bool "listening3clic" en true si il valait false (initialisé à false) et tu incrémente un compteur "cpt3clic" (initialisé à 0). A chaque clic, tu incrémente le compteur, si il vaut 3 tu es dans un cas Triple clic, tu fais alors ton traitement particulier. Si le timer arrive à expiration, tu l'arrête, tu passes le "istening3clic" à false et le "cpt3clic" à 0.

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    61
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2004
    Messages : 61
    Par défaut
    Ok ca fonctionne, merci pour les infos

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Interception de chaque click sur une form
    Par olibara dans le forum Windows Forms
    Réponses: 6
    Dernier message: 11/03/2012, 11h00
  2. Intercepter le click sur une cellule du tableau ?
    Par [ZiP] dans le forum jQuery
    Réponses: 2
    Dernier message: 23/11/2010, 12h21
  3. Intercepter un event non géré par un on(dbl)click sur une ancre
    Par Invité dans le forum Général JavaScript
    Réponses: 7
    Dernier message: 09/06/2010, 20h42
  4. Emission d'un signal lors d'un click sur une image
    Par peuf23 dans le forum Débuter
    Réponses: 27
    Dernier message: 20/12/2008, 17h12
  5. Intercepter un click sur un Contrôle dans une UserForm
    Par RedColibri dans le forum VBA Word
    Réponses: 2
    Dernier message: 11/07/2008, 11h35

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo