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 é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 root.bind ('
4 Réponses :
Vous pouvez le faire dans très simple fort>. Vous aurez besoin de Pyutogui sortie: p>
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)
Vous pouvez utiliser après () code> et
winfo_pointerxy () code> pour obtenir la position de la souris constamment:
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()
Peut aider - la position de la souris Stackoverflow.com/Questions/22925599/.../ a>
Il n'y a aucun moyen de le faire avec Tkinter seul.
@Bryanoakley Il n'y a pas de problème, j'ai utilisé un exemple de tkinter car il était plus facile de montrer ce dont j'avais besoin, mais je suis ouvert à d'autres bibliothèques / solutions.