0
votes

Comment puis-je constamment obtenir ma position de souris en dehors de la fenêtre Tkinter avec Python?

Y a-t-il un moyen d'obtenir constamment la position de ma souris et d'imprimer avec python? Je sais qu'avec Tkinter, vous pouvez y parvenir en liant le mouvement de la souris avec quelque chose comme ça, mais je veux quelque chose qui fonctionne également en dehors de Tkinter créé Windows xxx

édition: merci pour les réponses mais je n'étais pas 't si clair dans ma question, j'ai besoin d'une façon de fonctionner sur l'arrière-plan pendant que je peux utiliser d'autres méthodes sur mon code. Si j'utilise tandis que vrai je serai verrouillé dans cette méthode. J'ai besoin de quelque chose exactement comme root.bind ('', motion) mais cela fonctionne en dehors de la fenêtre racine, par exemple.


4 Réponses :


1
votes

Vous pouvez le faire dans très simple . Vous aurez besoin de Pyutogui xxx

sortie: xxx


0 commentaires

0
votes

Essayez ceci, il peut vous aider

#!/usr/bin/python

import struct
import binhex

# You'll need to find the name of your particular mouse to put in here...
file = open("/dev/input/by-id/usb-Logitech_USB_Trackball-event-mouse","rb")


while True:
     byte = file.read(16)
#    h = ":".join("{:02x}".format(ord(c)) for c in byte)
#    print "byte=",h

    (type,code,value) =  struct.unpack_from('hhi', byte, offset=8)

    if type == 1 and value == 1:
        if code == 272:
            print ("LEFT PRESS")
        if code == 273:
            print("RIGHT PRESS")

    if type == 2:
        if code == 0:
            print("MOVE L/R",value)
        if code == 1:
            print("MOVE U/D",value)


0 commentaires

2
votes

Vous pouvez utiliser après () et winfo_pointerxy () pour obtenir la position de la souris constamment: xxx


0 commentaires

0
votes

réussi à le faire en utilisant le Bibliothèque PyXHook (implémentation de Pyhook pour Linux). En utilisant cette solution, vous n'aurez pas l'inconvénient que vous êtes enfermé sur un pendant la vraie code> boucle. Pour arrêter la capture, appuyez simplement sur 'ESC' (EVENT.ASCII == 27).

import pyxhook
import pyautogui

def mouse_event(event):
    posx, posy = pyautogui.position()
    print ("PosX: " + str(posx) + ", PosY: " + str(posy))

def cancel_hookmanager(event):
    if event.Ascii == 27:
        hookman.cancel()

hookman = pyxhook.HookManager()
hookman.MouseMovement = mouse_event
hookman.KeyUp = cancel_hookmanager
hookman.HookKeyboard
hookman.HookMouse
hookman.start()


0 commentaires