Saya mencoba membuat interkom dengan python hanya untuk bersenang-senang.

Saya ingin menulis "Err" dan berkedip selama 5 detik ketika Anda mencoba menelepon nomor lebih dari 69. Tetapi time.sleep() tidak akan berfungsi di tkinter dan saya tidak tahu cara bekerja dengan metode .after().

    if int(lbl.cget("text"))>69:
    for i in range(5):
        lbl.configure(text="Err")
        time.sleep(0.5)
        lbl.configure(text="     ")
        time.sleep(0.5)
2
nechto 12 Mei 2021, 17:45

1 menjawab

Jawaban Terbaik

Anda dapat menggunakan .after() untuk menjalankan fungsi setiap setengah detik untuk mengganti teks label:

def do_blink(lbl, n=10):
    if n > 0:
        lbl.after(500, do_blink, lbl, n-1) # call again after half a second
        lbl["text"] = "" if n&1 else "Err" # toggle between "" and "Err"

if int(lbl["text"]) > 69:
    do_blink(lbl)
3
acw1668 12 Mei 2021, 15:35