我想以50的步长从左向右移动一个矩形,但是画布直到矩形到达右侧才绘制矩形。
import tkinter as tk
import time
root=tk.Tk()
c_width,c_height=500,250
cv = tk.Canvas(root,bg = 'white',width=c_width,height=c_height)
l_x=0
l_y=0
r_x=50
r_y=50
step=50
r1=cv.create_rectangle(l_x,l_y,r_x,r_y,fill='red')
while l_x<c_width-50:
cv.delete(r1)
l_x=l_x+step
r_x=r_x+step
r1=cv.create_rectangle(l_x,l_y,r_x,r_y,fill='red')
print(c_width,l_x)
time.sleep(1)
cv.pack()
root.mainloop()
1条答案
按热度按时间t40tm48m1#
不建议在tkinter应用程序中使用while/for循环,因为它会阻止tkinter
mainloop()
处理挂起的事件和更新。请改用.after()
。此外,您不需要删除和重新创建矩形项,只需使用
cv.move()
移动矩形项。下面是更新代码: