Comment puis-je arrêter tkinter, après la fonction?

Je vais avoir un problème de l'arrêt de la "nourrir"; l'argument cancel ne semble pas avoir d'impact sur la après la méthode. Bien que "l'alimentation est à l'arrêt" est imprimé sur la console.

Je suis d'essayer d'avoir un bouton qui permettra de démarrer l'alimentation et un autre qui va arrêter l'entraînement.

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()

Avec la sortie:

Starting Feed
Sleeping 4195
Sleeping 4634
Sleeping 6591
Sleeping 7074
Stopping Feed
Sleeping 4908
Feed Stopped
Sleeping 6892
Sleeping 5605
  • Je ne suis pas entièrement sûr de savoir comment tkinter fonctionne, mais ça a l'air tout à fait comme un problème thread pour moi. Si vous faites annuler un (thread-safe) mondiale, ne fait que résoudre le problème?
  • non, pas un problème thread. Tkinter est mono-thread.
  • Merci. C'est pourquoi j'ai posté un commentaire. Je n'étais pas sûr si je voulais juste poser la question.
InformationsquelleAutor Sheldon | 2012-03-19