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