如何在固定时间后自动关闭tkinter窗口?

时间:2017-07-25 05:16:08

标签: python tkinter

我正在开发一个GUI,允许用户决定是继续使用脚本还是终止它,但是如果用户在15分钟内没有响应,我想杀死窗口并自动继续执行其余的脚本。我在函数中使用了root.destroy(),但只有在用户响应时才会执行。

import sys      
import Tkinter   
root = Tkinter.Tk()   
"""def countdown(time):   
    if time==10:   
        root.destroy()   
    else:   
        time +=time """ 
def Yes_callback():    
    root.destroy()   
    return()    
def No_callback():    
    root.destroy() #Kills GUI    
    sys.exit("There is an Overnight execution")#Stops script    
    return() # returns to prog    
ask = Tkinter.Label(text="Do you have any overnight task to run?")    
yes_button = Tkinter.Button(root,text="Yes", command = Yes_callback)    
no_button = Tkinter.Button(root, text="No", command = No_callback)    
ask.pack()   
yes_button.pack()    
no_button.pack()    
#countdown(0)    
root.mainloop()

我尝试过在试用的基础上使用倒计时功能,但由于没有用户响应控制没有倒计时功能,它不起作用。有什么方法可以完成这项任务吗?

1 个答案:

答案 0 :(得分:2)

看一下after方法。

widget.after(5000,callback)

参考:Close a tkinter window after a period of time