Анимация движения кнопок в ткинтер - PullRequest
0 голосов
/ 21 ноября 2018

Я хочу переместить анимированную кнопку.Например, оно начинается с 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)

Окно открылось после того, как были выполнены все команды места.

1 Ответ

0 голосов
/ 21 ноября 2018

Не останавливайте / не спите вашу программу на 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()

enter image description here

...