Tkinter Canvas 基本动画
动画设计所使用的方法是move( ),使用格式如下。
canvas.move(ID, xMove, yMove) # ID是对象编号
canvas.update() # 强制重绘画布
xMove,yMove分别是沿x和y轴移动距离,单位是像素。
示例1
移动球的设计,每次移动5像素。
from tkinter import *
import time
tk = Tk()
tk.title("apidemos.com")
canvas = Canvas(tk,width=500, height=150) # 建立画布
canvas.pack()
canvas.create_oval(10,50,60,100,fill="yellow",outline='lightgray')
for x in range(0,80):
canvas.move(1,5,0) # ID=1 x轴移动5像素,y轴不变
tk.update() # 强制tkinter重绘
time.sleep(0.05)
# tk.mainloop()
输出:
上述程序执行时使用循环,第13行相当于定义每隔0.05s移动一次。其实我们只要设置move( )方法的参数就可以向任意方向移动。
示例2
扩大画布高度为300像素,每次x轴移动5像素,y轴移动2像素。
from tkinter import *
import time
tk = Tk()
tk.title("apidemos.com")
canvas = Canvas(tk,width=500, height=300) # 建立画布
canvas.pack()
canvas.create_oval(10,50,60,100,fill="yellow",outline='lightgray')
for x in range(0,80):
canvas.move(1,5,2) # ID=1 x轴移动5像素,y轴移动2像素
tk.update() # 强制tkinter重绘
time.sleep(0.05)
# tk.mainloop()
输出: