Как мне остановить tkinter after function?

У меня проблема с остановкой "канала"; Аргумент отмены, похоже, не оказывает никакого влияния на метод after. Хотя "подача остановлена" выводится на консоль.

Я пытаюсь сделать так, чтобы одна кнопка запускала ленту, а другая останавливала ленту.

from Tkinter import Tk, Button
import random

    def goodbye_world():
        print "Stopping Feed"
        button.configure(text = "Start Feed", command=hello_world)
        print_sleep(True)

    def hello_world():
        print "Starting Feed"
        button.configure(text = "Stop Feed", command=goodbye_world)
        print_sleep()

    def print_sleep(cancel=False):
        if cancel==False:
            foo = random.randint(4000,7500)
            print "Sleeping", foo
            root.after(foo,print_sleep)
        else:
            print "Feed Stopped"


    root = Tk()
    button = Button(root, text="Start Feed", command=hello_world)

    button.pack()


    root.mainloop()

С выводом:

Starting Feed
Sleeping 4195
Sleeping 4634
Sleeping 6591
Sleeping 7074
Stopping Feed
Sleeping 4908
Feed Stopped
Sleeping 6892
Sleeping 5605
7
задан Sheldon 19 March 2012 в 19:38
поделиться