Tại sao chương trình không đóng sau khi hoạt ảnh mờ dần?
Tôi mới sử dụng python và tôi đã nảy ra ý tưởng này về cách làm cho trang mờ dần bằng cách kiểm soát wm_attributes của chương trình GUI của tôi. Tôi đã tạo mã này để giảm số lượng 'a' đi 0,1 mỗi lần lặp, sau đó chương trình chuyển sang chế độ ngủ trong 0,1 giây để tạo hiệu ứng mờ dần này. Sau khi trang hoàn toàn trong suốt, tôi yêu cầu nó hủy root. Tuy nhiên, hoạt ảnh mờ dần hoạt động hoàn hảo nhưng cửa sổ bị đóng băng và nó không đóng sau khi hoạt ảnh hoàn tất. Tôi làm gì sai ở đây? Đây là mã của tôi:
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()
Trả lời
Trong while
vòng lặp của bạn , a
biến sẽ không bao giờ đạt đến 0
giá trị chính xác và do đó vòng lặp của bạn sẽ không bao giờ kết thúc. Bạn cần kiểm tra xem có phải a
là số dương hay không hoặc sử dụng một giá trị số nguyên để trừ.
Python sử dụng số học dấu phẩy động nhị phân. Bạn có thể tìm thêm thông tin ở đây .
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()