Précédent   Forum des professionnels en informatique > C et C++ > Bibliothèques > Qt
Qt Forum d'entraide technique sur la bibliothèque Qt. Avant de poster -> F.A.Q Qt
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 06/01/2012, 18h43   #1
Membre habitué
 
Avatar de mitkl
 
Inscription : février 2010
Messages : 76
Détails du profil
Informations forums :
Inscription : février 2010
Messages : 76
Points : 132
Points : 132
Par défaut Récupérer les positions de la souris sans avoir le focus sur la fenêtre

Bonsoir,

à l'aide de la bibliothèque Qt, je voudrais afficher une fenêtre au milieu de mon écran seulement si ma souris est allé sur la partie gauche sur l'écran, pour résumer :

- On lance l'application, elle est cachée, on a le focus sur une autre application.
- Si je colle ma souris au bord gauche de mon écran, ma fenêtre apparait au centre de l'écran.

Voilà, il faudrait en fait que je récupère les coordonnées de la souris dans mon application même si je n'ai pas le focus dessus.
Comment faire ?

Après quelques recherches :
- Il semblerait que quelque chose de la sorte est possible en utilisant la lib Qxt, mais je n'ai pas envie de l'installer, je pense qu'il y a plus simple.
- J'ai pensé à lancer un thread dans mon programme qui se chargerait de le faire, mais je ne suis pas sûr de l'efficacité (comment récupérer la position de la souris quand on dérive de QThread ?)

Merci d'avance pour vos conseils avisés.
mitkl est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/01/2012, 13h00   #2
Rédacteur
 
Avatar de Amnell
 
Homme Louis du Verdier
Étudiant
Inscription : mars 2009
Messages : 1 480
Détails du profil
Informations personnelles :
Nom : Homme Louis du Verdier
Localisation : France, Hauts de Seine (Île de France)

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : mars 2009
Messages : 1 480
Points : 5 159
Points : 5 159
Bonjour,

Pour récupérer la position de la souris par rapport à l'écran lui-même, il suffit de passer par QWidget::mapToGlobal(). Après, pour savoir "quand" le faire, un mouseMoveEvent ne va pas être possible si la souris n'est pas dans la fenêtre. Du coup, je ne sais pas : une boucle, un timer, un thread, un hack ? Quelqu'un aura sans doute une meilleure solution.

Bonne continuation,
Amnell.
Amnell est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/01/2012, 14h01   #3
Membre habitué
 
Avatar de mitkl
 
Inscription : février 2010
Messages : 76
Détails du profil
Informations forums :
Inscription : février 2010
Messages : 76
Points : 132
Points : 132
Oui j'ai finalement réussi facilement à l'aide de QThread qui tourne en boucle avec une pause de 1s pour éviter une trop grosse consommation de CPU et QCursor qui permet de récupérer la position de la souris sur l'écran même si on a pas le focus sur notre application.

Le problème est donc résolu.

J'hésite même à créer une petite lib qui gère ce genre de chose, ça servira peut-être à plus d'une personne.
mitkl est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 04h29.


 
 
 
 
Partenaires

Hébergement Web