[英]How do I show, hide and show tkinter canvas after a period of time?
我正在尝试显示和隐藏并显示 canvas。 canvas 甚至在我运行程序时都没有出现,并且似乎卡在了一个循环中。
import tkinter as tk
import time
class Test():
def __init__(self):
self.root = tk.Tk()
self.canvas = tk.Canvas(self.root, bg="black", width=550, height=820)
def main(self):
time.sleep(2)
self.canvas.pack()
time.sleep(2)
self.canvas.pack_forget()
time.sleep(2)
self.canvas.pack()
self.root.mainloop()
a = Test()
a.main()
我在这里看到了一些问题
__init__
function 中使用 mainloop 方法.update()
)以使其工作sleep
function 使用.after
方法在 tkinter 中稍好一些我已将您的代码修改为以下内容:
import tkinter as tk
class Test():
def __init__(self):
self.root = tk.Tk()
self.canvas = tk.Canvas(self.root, bg='black', width=550, height=820)
self.btn = tk.Button(self.root,text='main func',command=self.main)
self.btn.pack()
self.root.mainloop()
def main(self):
self.root.after(2000)
self.canvas.pack()
self.canvas.update()
self.root.after(2000)
self.canvas.pack_forget()
self.canvas.update()
self.root.after(2000)
self.canvas.pack()
self.canvas.update()
a = Test()
如您所见,我添加了一个按钮来为我发生事件。 尝试在您的程序中找到可能发生事件的时刻。 例如:我点击按钮生成一些字符串。 它也运行主要功能。
我希望我对你有足够的帮助
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.