2011-07-10, 19:08
#1
Leker lite med pyHook, men har tyvrr inte hittat s mycket dokumentation.
Jag har ett simpelt program som visar en timer som rknar ned varje sekund, denna timer nollstlls nr man klickar med musen:
Detta fungerar rtt s bra, nda tills man ska flytta fnstret. r man inte snabb nog s fryser musen fast i 3-4 sekunder, sen slutar programmet att svara.
Det problemet frsvinner om man kommenterar bort:
eller:
i konstruktorn, s min gissning r att Tkinter krockar med pyHook p ngot stt.
Ngon som har en bra lsning?
Jag har ett simpelt program som visar en timer som rknar ned varje sekund, denna timer nollstlls nr man klickar med musen:
Kod:
from Tkinter import * import pyHook class Main: def __init__(self): self.root = Tk() self.root.protocol("WM_DELETE_WINDOW", self.onClose) self.root.title("Timer") self.timerView = Text(self.root, background="#000", foreground="#0C0", font=("Arial", 200), height=1, width=3) self.timerView.pack(fill=BOTH, expand=1) self.hm = pyHook.HookManager() self.hm.SubscribeMouseAllButtonsDown(self.reset) self.hm.HookMouse() self.reset() self.tick() self.root.mainloop() def onClose(self): self.root.destroy() def reset(self, event=None): self.timer = 300 return True def tick(self): self.timerView.delete(1.0, END) self.timerView.insert(END, self.threeDigits(self.timer)) self.timer = self.timer - 1 if self.timer > 0 else 0 self.root.after(1000, self.tick) def threeDigits(self, number): number = str(number) while len(number) < 3: number = "0" + number return number if __name__ == "__main__": Main()
Detta fungerar rtt s bra, nda tills man ska flytta fnstret. r man inte snabb nog s fryser musen fast i 3-4 sekunder, sen slutar programmet att svara.
Det problemet frsvinner om man kommenterar bort:
Kod:
self.hm.HookMouse()
eller:
Kod:
self.tick()
i konstruktorn, s min gissning r att Tkinter krockar med pyHook p ngot stt.
Ngon som har en bra lsning?