tkinter остановить или остановить функцию (def) из корневого окна

Если функция вызывается из корневого окна и функция не достигает решения, или пользователь хочет остановить функцию, можно ли это сделать из корневого окна, и если да, то как? Следующий код создает две кнопки: запуск запускается "while" с помощью start (), но start () не может быть остановлен командой Quit. Использование root.update_idletasks() в start () не дает никакого эффекта.

#!/usr/bin/env python
from Tkinter import *

def start():
    while True:
      print "Stop me if you can from Quit"
      root.update_idletasks()

root = Tk()
root.title('Example')

button1 = Button(root,text = 'Start', command = start)
button1.grid(row = 0, column = 0)

button2 = Button(root,text = 'Quit', command = root.destroy)
button2.grid(row = 1, column = 0)

root.mainloop()

1 ответ

ЗАМЕНА root.update_idletasks() С root.update() а также start() убивает корневое окно от button2.

#!/usr/bin/env python
from Tkinter import *

def start():
    while True:
      print "Stop me if you can from Quit"
      root.update()

root = Tk()
root.title('Example')

button1 = Button(root,text = 'Start', command = start)
button1.grid(row = 0, column = 0)

button2 = Button(root,text = 'Quit', command = root.destroy)
button2.grid(row = 1, column = 0)

root.mainloop()
Другие вопросы по тегам