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.