Déplacement souris Qt c++ [Résolu]

Messages postés
86
Date d'inscription
vendredi 20 octobre 2006
Dernière intervention
13 mai 2010
- - Dernière réponse : victor110
Messages postés
86
Date d'inscription
vendredi 20 octobre 2006
Dernière intervention
13 mai 2010
- 20 févr. 2010 à 17:23
Bonjour à tous,

J'utilise depuis peu la librairie Qt et je voudrais détecter le mouvement de la souris dans le widget mais aussi en dehors. Je ne trouve pas de fonction correspondant dans Qt.
QMouseEvent ne s'appliquant uniquement au widget je ne vois pas comment faire.

Pourriez vous m'aider?

Cordialement
Afficher la suite 

Votre réponse

9 réponses

Meilleure réponse
Messages postés
3982
Date d'inscription
mardi 8 mars 2005
Dernière intervention
7 novembre 2014
3
Merci
Bah oui un peu. Une autre solution serait d'utiliser un timer + GetCursorPos mais ce serait moins précis et consommerait inutilement du temps CPU.

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources a aidé 104 internautes ce mois-ci

Commenter la réponse de cs_rt15
Messages postés
3982
Date d'inscription
mardi 8 mars 2005
Dernière intervention
7 novembre 2014
0
Merci
Salut,

Jette peut être un oeil sur grabMouse. Mais elle est dangereuse.
Commenter la réponse de cs_rt15
Messages postés
86
Date d'inscription
vendredi 20 octobre 2006
Dernière intervention
13 mai 2010
0
Merci
Si j'ai bien compris la doc ça peut faire planter la compilation?
Commenter la réponse de victor110
Messages postés
86
Date d'inscription
vendredi 20 octobre 2006
Dernière intervention
13 mai 2010
0
Merci
J'ai un deuxième problème la doc indique que la souris n'est plus reconnue par les autres application.
Je voudrais faire une application qui se lance uniquement lorsque la souris bouge. Ce serait une application de fond(QSystemTray).
Si ce n'est pas possible en Qt:
Est-ce possible avec la librairie standard?
Commenter la réponse de victor110
Messages postés
3982
Date d'inscription
mardi 8 mars 2005
Dernière intervention
7 novembre 2014
0
Merci
Ah non, pas avec la lib standard. Il n'y a pas de solution portable pour faire ce genre de chose.
Sous Windows, un hook souris me paraîtrait pas mal.
Sous Linux, faudrait chercher dans la lib X11, du côté de XFilterEvent peut être.
Commenter la réponse de cs_rt15
Messages postés
86
Date d'inscription
vendredi 20 octobre 2006
Dernière intervention
13 mai 2010
0
Merci
Je bosse sous windows et je ferai la version linux après.
J'ai déjà pensé au hook. C'est pas un peu risqué?
Commenter la réponse de victor110
Messages postés
86
Date d'inscription
vendredi 20 octobre 2006
Dernière intervention
13 mai 2010
0
Merci
Ok j'ai un autre problème. Je voudrais lorsque je ferme la fenêtre qu'elle apparaissent dans le systemtray. Le probleme c'est que j'arrive pas à réouvrir la fenêtre a partir du systemtray.
void FenTimer::iconActivated(QSystemTrayIcon::ActivationReason reason)
{
    switch (reason)
    {
        case QSystemTrayIcon::Trigger:
        case QSystemTrayIcon::DoubleClick:
            show();
            break;
    }
}

Et voici le connect:
QObject::connect(SysIco, SIGNAL(QSystemTrayIcon::activated(QSystemTrayIcon::ActivationReason)), this, SLOT(iconActivated(QSystemTrayIcon::ActivationReason reason)));

Je l'utilise de la même facon que dans l'exemple Qt.
Exemple QT
Je comprend pas le problème.
Commenter la réponse de victor110
Messages postés
3982
Date d'inscription
mardi 8 mars 2005
Dernière intervention
7 novembre 2014
0
Merci
Aucune idée... Mais c'est une autre question ! Pour une autre question, il faut ouvrir une autre discussion.
Commenter la réponse de cs_rt15
Messages postés
86
Date d'inscription
vendredi 20 octobre 2006
Dernière intervention
13 mai 2010
0
Merci
Désolé, merci a toi
Commenter la réponse de victor110

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.