首页 > 解决方案 > tkinter 中的按钮运动动画

问题描述

我想移动一个动画按钮。例如,它从 x=0 和 y=0 开始,在 0.1 秒后 x=1 和 y=1 ... x=50 和 y=50。

我试过这个:

import tkinter
import time

b=tkinter.Button(text="Example")
for i in range(50): 
    i+=1
    b.place(x=i, y=i)
    time.sleep(0.1)

执行完所有放置命令后打开的窗口。

标签: pythonbuttontkinterjquery-animatemotion

解决方案


不要暂停/休眠你的 python 程序。正如@Mike-SMT 所指出的,它最终可能会冻结你的主循环。如果你想做动画,after是要走的路。

import tkinter as tk

root = tk.Tk()
b = tk.Button(root, text="Example")

def move(i):
    if i<=50:
        b.place(x=i, y=i)
        b.after(100, lambda: move(i)) #after every 100ms
        i = i+1

move(0) #Start animation instantly
root.mainloop()

在此处输入图像描述


推荐阅读