没有按钮关闭Python Tkinter窗口主循环

时间:2018-07-09 09:51:13

标签: python tkinter

我想每1秒刷新一次python Tkinter窗口:

animation=TFS(test) #animation is a list, each item in the list is a table with drawing input information.
for item in animation:
    Display(item) #display function is creating a Tkinter window with a mainloop
    time.sleep(1)

我在互联网上找到的关于为Tkinter关闭主循环的唯一解决方案是在按钮中使用.quit()或.destroy()。

但是我不希望用户手动关闭窗口,该窗口应该每隔x秒自动关闭一次,以便能够显示具有更新信息的新窗口。

注意:显示器由大约200个矩形和标签组成。

2 个答案:

答案 0 :(得分:0)

可以在代码中的任何位置调用.destroy()方法,而不必在按下按钮时调用。要关闭该窗口,必须在Tk对象(主窗口,您创建的第一个窗口)上调用它。但是,就像@Billal BEGUERADJ所说的那样,您无需关闭窗口即可刷新其中的小部件。只需在您要修改的小部件上调用.config()方法,然后将要更改的选项作为参数传递即可。

答案 1 :(得分:0)

画布中的显示是具有数百种形状的程序,因此.configure似乎很难使用。

所以我删除了Display函数中的.mainloop()并替换为:

TK.update()
time.sleep(RefreshTime)
TK.destroy()
return

并将主要代码更改为以下内容:

animation=TFS(test)       
for step in animation:
     Display.display(step,RefreshTime)