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

Python Discussion :

Auto clique Tkinter


Sujet :

Python

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Candidat au Club
    Homme Profil pro
    Auditeur informatique
    Inscrit en
    Novembre 2016
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Morbihan (Bretagne)

    Informations professionnelles :
    Activité : Auditeur informatique

    Informations forums :
    Inscription : Novembre 2016
    Messages : 3
    Par défaut Auto clique Tkinter
    Bonjour, j'essai de faire un auto clique en python (novice) ..

    Je me sert de Tkinter pour créer une fenêtre et afficher un bouton, quand on clique sur le bouton la fenêtre Tkinter se minimise pour attendre un clique de la souris afin de récupérer les coordonnées de la souris.

    Sauf que quand je minimise la fenêtre Tkinter avec la function ne fonctionne que si la fenêtre Tkinter est detruite..

    Comment je peux dire au programme de réactiver le onclick??

    En gros le fonctionnement de l'appli serai , ouvre une fenêtre tTkinter place un bouton, je clique sur le bouton, minimise la fenêtre, attend un clique souris, je clique sur la souris, je récupère le x et y du cursor, les place dans un tableau et replace la fenêtre au premier plan.. 8))

    Merci a ceux qui voudront bien me donner un coup de main..

  2. #2
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 690
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 690
    Par défaut
    Salut,

    Citation Envoyé par zazaza22 Voir le message
    En gros le fonctionnement de l'appli serai , ouvre une fenêtre tTkinter place un bouton, je clique sur le bouton, minimise la fenêtre, attend un clique souris, je clique sur la souris, je récupère le x et y du cursor, les place dans un tableau et replace la fenêtre au premier plan.. 8))
    Sur votre écran, vous pouvez avoir les fenêtres de plusieurs applications. L'application qui reçoit les "clicks" sera celle correspondant à une des fenêtres ou le curseur est positionné.
    Réciproquement, sans fenêtre affichée, impossible d'envoyer des clicks à l'application simplement parce qu'en dessous, le windows manager n'a pas été écrit pour çà.
    La seule solution serait de demander au window manager de votre environnement système de vous expédier les évènements de la souris avant de les passer à l'éventuelle application.

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  3. #3
    Candidat au Club
    Homme Profil pro
    Auditeur informatique
    Inscrit en
    Novembre 2016
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Morbihan (Bretagne)

    Informations professionnelles :
    Activité : Auditeur informatique

    Informations forums :
    Inscription : Novembre 2016
    Messages : 3
    Par défaut
    Merci de ta réponse, tu voudrai pas m'en dire un peu plus sur comment je peux faire ??


    Si tu essai ça tu y verras peut être mieux..
    Je suis sur windows et python 2.7.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    #!/usr/bin/env python
    # -*- coding: utf-8 -*-
    #
    import win32api, win32con, time, win32ui, pyHook, pythoncom
    from Tkinter import *
     
    fenetre  = Tk()
    tab = []
     
    def onclick(event):
        tab.append(event.Position);
        print(tab)
        return True
     
    def callfunc():
        fenetre.iconify()
     
    b = Button(fenetre , text="PICK", command=callfunc)
    b.pack()
     
    fenetre.mainloop()
     
    hm = pyHook.HookManager()
    hm.SubscribeMouseAllButtonsDown(onclick)
    hm.HookMouse()
    pythoncom.PumpMessages()
    hm.UnhookMouse()

  4. #4
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 690
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 690
    Par défaut
    Citation Envoyé par zazaza22 Voir le message
    tu voudrais pas m'en dire un peu plus sur comment je peux faire??
    Vu votre environnement, essayer de passer par pyHook est une bonne idée (tkinter ne saura pas le faire tout seul). Mais je n'ai pas le temps de lire les tutos/exemples de cette bibliothèque pour voir comment la faire fonctionner et si elle répond à votre besoin.

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  5. #5
    Candidat au Club
    Homme Profil pro
    Auditeur informatique
    Inscrit en
    Novembre 2016
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Morbihan (Bretagne)

    Informations professionnelles :
    Activité : Auditeur informatique

    Informations forums :
    Inscription : Novembre 2016
    Messages : 3
    Par défaut
    Un programme bâti autour d’une interface graphique inclut nécessairement une boucle de message. Celle-ci attend les messages en provenance de l’interface. Lorsqu’un de ceux-ci lui commande de lancer un traitement long, l’interface graphique n’est plus en mesure de réagir aux événements qui lui viennent pendant ce temps. Afin de remédier cela, il suffit d’insérer le traitement dans un thread. A la fin de ce dernier, un événement sera envoyé à l’interface afin de lui signifier la fin du traitement.

    Le paragraphe parag_graph_bind a montré comment associer un événement particulier à une fenêtre. La différence ici est que l’événement accroché à la fenêtre n’est pas prédéfini par le module Tkinter mais par le programme lui-même - dans cet exemple <<thread_fini>> -. Les symboles <<>> au début et à la fin du nom de l’événement sont la seule contrainte. La méthode event_generate permet d’insérer un message dans la boucle de messages de façon à ce que celui-ci soit traité au même titre qu’un clic de souris, la pression d’une touche, ...
    http://www.xavierdupre.fr/app/teachp...rag_graph_bind

Discussions similaires

  1. [Débutant] Mouse Coordonnées + Auto clique
    Par Trusty823 dans le forum Visual Studio
    Réponses: 0
    Dernier message: 20/07/2013, 17h19
  2. Réponses: 5
    Dernier message: 09/02/2013, 23h05
  3. Réponses: 2
    Dernier message: 10/07/2009, 19h08
  4. [tkinter] evenement : clique gauche et droit
    Par CaptainChoc dans le forum Tkinter
    Réponses: 2
    Dernier message: 15/10/2007, 15h07
  5. Réponses: 3
    Dernier message: 11/04/2007, 13h18

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