擅长:python、mysql、java
<p>Tk实例要求您运行它的mainloop函数,以便控制主进程线程</p>
<p>您的代码正在主进程线程上调用time.sleep(),这会阻止GUI执行任何操作。如果您希望能够在等待时使用GUI进行操作(例如绘制窗口、移动窗口或向其绘制其他内容),那么您需要扩展Tk,让UI使用self.after()处理回调</p>
<p>下面是一个简单的示例,说明如何扩展Tk类以实现所需的功能</p>
<pre><code>import tkinter
class TkInstance(tkinter.Tk):
def __init__(self):
tkinter.Tk.__init__(self)
#Set up the UI here
self.canvas = tkinter.Canvas(self, width = 450, height = 450, bg = "white")
self.canvas.place(x = 25, y = 25) #Draw the canvas widget
#Tell the UI to call the MoveCircle function after 2 seconds
self.after(2000, self.MoveCircle) #in ms
def MoveCircle(self):
x = 30
y = 50
d = 30
circle = self.canvas.create_oval(x, y, x+d, y+d, fill = "red")
self.canvas.move(circle, 50, 40) #Draw the circle
#Main entrance point
if __name__ == "__main__": #good practice with tkinter to check this
instance = TkInstance()
instance.mainloop()
</code></pre>