python tk 等待动画
时间: 2023-11-23 15:57:08 浏览: 56
在Python Tkinter中,可以使用after函数和Canvas组件来实现等待动画。以下是一个简单的例子:
```python
from tkinter import *
import time
class WaitAnimation:
def __init__(self, master, x=0, y=0, size=50, speed=50):
self.master = master
self.x = x
self.y = y
self.size = size
self.speed = speed
self.canvas = Canvas(master, width=size, height=size)
self.canvas.place(x=x, y=y)
self.draw()
def draw(self):
self.canvas.delete(ALL)
r = self.size / 2
self.canvas.create_arc(r, r, self.size + r, self.size + r, start=0, extent=30, fill='blue')
self.canvas.create_arc(r, r, self.size + r, self.size + r, start=90, extent=30, fill='green')
self.canvas.create_arc(r, r, self.size + r, self.size + r, start=180, extent=30, fill='yellow')
self.canvas.create_arc(r, r, self.size + r, self.size + r, start=270, extent=30, fill='red')
self.canvas.after(self.speed, self.draw)
root = Tk()
root.geometry('300x300')
wait = WaitAnimation(root, x=125, y=125, size=50, speed=50)
# 模拟耗时操作
time.sleep(5)
root.mainloop()
```
在这个例子中,我们创建了一个WaitAnimation类,它包含一个Canvas组件和一个draw方法。draw方法使用create_arc函数在Canvas上绘制四个扇形,每个扇形的颜色不同。然后,我们使用after函数来定时调用draw方法,从而实现动画效果。在主程序中,我们创建了一个WaitAnimation对象,并模拟了一个耗时操作,以便演示等待动画的效果。