使tkinter标签按设置的时间间隔刷新

时间:2020-07-06 14:18:06

标签: python tkinter

我做了一个窗口和清单。我想输出数字并使它们每隔一秒消失一次。

list1={1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20}

def Display_num():

    for i in range(20):

    display=tkinter.Label(window, text=list1[i],width=25, height=3,fg="black",relief="solid")

    display.pack()

    display.after(1000,display.destroy) 

但是,当我运行该程序时,标签同时打印并消失。我该如何解决?

1 个答案:

答案 0 :(得分:0)

import tkinter as tk

def loop(lbl, ls, flash: bool = False):
    if ls:
        if not flash:
            val, *ls = ls

            lbl.config(text=val)

            lbl.after(1000, loop, lbl, ls, not flash)

        else:
            lbl.config(text=" ")

            lbl.after(250, loop, lbl, ls, not flash)
        
    else:
        lbl.config(text="Fin")

        

root = tk.Tk()

label = tk.Label(root, text="Default")

label.pack()

loop(label, [1, 2, 3, 4, 5, 6, 7, 8, 9])

root.mainloop()

当列表不为空时,每秒更新一次标签。列表为空后,它将标签文本设置为fin

编辑

根据评论请求在数字之间添加了简短的“闪烁”。