tkinter - 使用平滑的 "fading" 动画将帧隐藏到右侧
tkinter - make a frame hide to the right with smooth "fading" animation
我做了一个简单的程序,主要 window 有一个框架 hideout
会慢慢移出屏幕
但是不行
import tkinter as tk
from tkinter import ttk
import time
root = tk.Tk()
root.geometry('360x640')
hideout = tk.Frame(root, background= '#fff', width = 360, height= 640)
def initial(*args):
for i in range(361):
time.sleep(0.01)
about.place(x=i,y=0)
root.after(0,initial)
root.mainloop()
这里有什么问题?
您正在使用未定义的变量:在 about
上调用 place()
时,您可能是指 hideout
。
“褪色”可以直接用root.after
回调控制;使用 time.sleep
将在动画期间阻止您的 GUI;这是不可取的。
这是一个工作示例:
import tkinter as tk
def initial(t=0):
hideout.place(x=t, y=0)
if t > 360:
return
root.after(10, initial, t+1)
if __name__ == '__main__':
root = tk.Tk()
root.geometry('360x640')
hideout = tk.Frame(root, background='#fff', width=360, height=640)
initial()
root.mainloop()
我做了一个简单的程序,主要 window 有一个框架 hideout
会慢慢移出屏幕
但是不行
import tkinter as tk
from tkinter import ttk
import time
root = tk.Tk()
root.geometry('360x640')
hideout = tk.Frame(root, background= '#fff', width = 360, height= 640)
def initial(*args):
for i in range(361):
time.sleep(0.01)
about.place(x=i,y=0)
root.after(0,initial)
root.mainloop()
这里有什么问题?
您正在使用未定义的变量:在 about
上调用 place()
时,您可能是指 hideout
。
“褪色”可以直接用root.after
回调控制;使用 time.sleep
将在动画期间阻止您的 GUI;这是不可取的。
这是一个工作示例:
import tkinter as tk
def initial(t=0):
hideout.place(x=t, y=0)
if t > 360:
return
root.after(10, initial, t+1)
if __name__ == '__main__':
root = tk.Tk()
root.geometry('360x640')
hideout = tk.Frame(root, background='#fff', width=360, height=640)
initial()
root.mainloop()