Python 为什么程序在淡入淡出动画后不关闭?
我是python新手,我提出了如何通过控制GUI程序的wm_属性使页面淡出的想法。我编写了这段代码,每次迭代将“a”的数量减少0.1,然后程序进入睡眠状态0.1秒,以创建这种淡入淡出效果。在页面完全透明后,我告诉它销毁root。但是,淡入淡出动画效果非常好,但窗口会冻结,并且在动画完成后不会关闭。我做错了什么? 这是我的密码:Python 为什么程序在淡入淡出动画后不关闭?,python,tkinter,fade,fadeout,Python,Tkinter,Fade,Fadeout,我是python新手,我提出了如何通过控制GUI程序的wm_属性使页面淡出的想法。我编写了这段代码,每次迭代将“a”的数量减少0.1,然后程序进入睡眠状态0.1秒,以创建这种淡入淡出效果。在页面完全透明后,我告诉它销毁root。但是,淡入淡出动画效果非常好,但窗口会冻结,并且在动画完成后不会关闭。我做错了什么? 这是我的密码: from tkinter import * import time root = Tk() def animation(): a = 1 whil
from tkinter import *
import time
root = Tk()
def animation():
a = 1
while a != 0:
a -= 0.1
root.wm_attributes("-alpha", a)
time.sleep(0.1)
root.destroy()
btn = Button(root, text='Fade out', command=animation)
btn.pack()
root.mainloop()
在while循环中,a变量永远不会达到精确的0值,因此循环永远不会结束。您需要检查a是否为正值,或者使用整数值进行减法
Python使用二进制浮点算法。你可以找到更多信息
在while循环中,a变量永远不会达到精确的0值,因此循环永远不会结束。您需要检查a是否为正值,或者使用整数值进行减法
Python使用二进制浮点算法。你可以找到更多信息
也许这可以帮助你回答这个问题。root.destroy vs.root.quit。也许这可以帮助你回答这个问题。root.destroy vs.root.quit。
from tkinter import *
import time
root = Tk()
def animation():
a = 1
while a > 0:
a -= 0.1
root.wm_attributes("-alpha", a)
time.sleep(0.1)
root.destroy()
btn = Button(root, text='Fade out', command=animation)
btn.pack()
root.mainloop()