Sönük animasyondan sonra program neden kapanmıyor?
Python'da yeniyim ve GUI programımın wm_attributes'ını kontrol ederek sayfanın nasıl soluklaştırılacağına dair bir fikir buldum. Her yinelemede 'a' miktarını 0,1 azaltan bu kodu yaptım, ardından program bu solma efektini oluşturmak için 0,1 saniye uyku moduna geçiyor. Sayfa tamamen şeffaf olduktan sonra ona kökü yok etmesini söyledim. Ancak, fade animasyonu mükemmel çalışıyor ancak pencere donuyor ve animasyon tamamlandıktan sonra kapanmıyor. Burada neyi yanlış yapıyorum? İşte kodum:
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()
Yanıtlar
Senin içinde while
döngü, a
değişken kesin asla ulaşacak 0
değeri ve böylece döngü hiç bitmeyecek. a
Pozitif olup olmadığını kontrol etmeniz veya çıkarmak için bir tamsayı değeri kullanmanız gerekir.
Python, ikili kayan nokta aritmetiğini kullanır. Daha fazla bilgiyi burada bulabilirsiniz .
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()