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 :

Récupérer les positions de la souris sans avoir le focus sur la fenêtre


Sujet :

Qt

  1. #1
    Membre éprouvé
    Avatar de mitkl
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2010
    Messages
    364
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2010
    Messages : 364
    Points : 1 081
    Points
    1 081
    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.
    Si vous ne savez toujours pas ce qu’est la récursivité, relisez cette phrase.

    Mon blog sur la programmation et l'informatique !

  2. #2
    Rédacteur
    Avatar de Amnell
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2009
    Messages
    1 840
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2009
    Messages : 1 840
    Points : 5 545
    Points
    5 545
    Par défaut
    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.
    N'oubliez pas de consulter la FAQ Qt ainsi que les cours et tutoriels C++/Qt !

    Dernier article : Débuter avec les Enlightenment Foundation Libraries (EFL)
    Dernières traductions : Introduction à Qt Quick - Applications modernes avec Qt et QML
    Vous cherchez un livre sur Qt 5, Qt Quick et QML ? Créer des applications avec Qt 5 - Les essentiels

  3. #3
    Membre éprouvé
    Avatar de mitkl
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2010
    Messages
    364
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2010
    Messages : 364
    Points : 1 081
    Points
    1 081
    Par défaut
    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.
    Si vous ne savez toujours pas ce qu’est la récursivité, relisez cette phrase.

    Mon blog sur la programmation et l'informatique !

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

Discussions similaires

  1. Réponses: 5
    Dernier message: 08/03/2010, 14h09
  2. Réponses: 24
    Dernier message: 25/09/2007, 11h53
  3. Réponses: 4
    Dernier message: 29/04/2007, 13h40
  4. Réponses: 3
    Dernier message: 18/10/2005, 21h14
  5. recuperer les coordoonees de la souris (sans applet)
    Par magnus2005 dans le forum Général Conception Web
    Réponses: 4
    Dernier message: 13/10/2005, 09h21

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