2016-04-04 19 views
0

再帰タイマーを停止したい。 after_cancelへの引数としてtickを使用しても機能しません。 "#2の後"を使うと、正しいタイミングでReturnキーを押した場合に起こります。Tkinter root.after_cancel

私はここで紛失していますか?

from Tkinter import * 
root = Tk()    

root.title("Tick")  
root.geometry("320x400") 

def tick():     
    print ("tick!")   
    print root.after(1000, tick) 

def key_pressed(event): 
    if event.keysym == "Return": 
     root.after_cancel(tick) 

root.bind("<Key>", key_pressed) 
root.after(1000, tick) 
mainloop() 

答えて

1

アフターアセットを渡す必要があります。これを簡単に編集することができます。

from tkinter import * 
root = Tk()    

root.title("Tick")  
root.geometry("320x400") 

AFTER = None 
def tick():     
    print ("tick!")   
    global AFTER 
    AFTER = root.after(1000, tick) 

def key_pressed(event): 
    if event.keysym == "Return": 
     root.after_cancel(AFTER) 

root.bind("<Key>", key_pressed) 
root.after(1000, tick) 
mainloop()