Как вы анимируете создание виджета в tkinter? - PullRequest
0 голосов
/ 01 декабря 2019

У меня есть рамка, которая появляется и исчезает при нажатии кнопки. Я хочу, чтобы на кадре была анимация, когда он появляется, как будто он расширяется от кнопки.

Это код, который у меня есть:

button_state = False #checks state of button
def click():
    button_state ^= True #switches between True and False
    if button_state == True:
        frame.place(x=50, y=30, width=10, height=10)
    else:
        frame.place_forget() #makes frame disappear

frame = Frame(window, bg='lightblue')

button = Button(window, text="menu", command=click)
button.place(x=50, y=50, anchor=CENTER)

Возможно ли сделать такую ​​вещь? в ткинтер?

1 Ответ

1 голос
/ 03 декабря 2019

Вы можете использовать цикл for для изменения размера кадра для имитации эффекта расширения:

def click():
  if frame.place_info():
    frame.place_forget()
  else:
    # show the frame below the button
    x, y = button.winfo_x(), button.winfo_y()+button.winfo_height()
    # assume the final size of the frame is 100x100
    for step in range(1, 11):
      frame.place(x=x, y=y, width=step*10, height=step*10)
      frame.update_idletasks() # update the frame
      frame.after(10) # sleep for a very short period
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...