簡體   English   中英

根據帶有 tkinter 的計時器顯示標簽

[英]Display a label depending on a timer with tkinter

我想顯示 i 的值,休息 2 秒,然后顯示 i 的新值。

但是使用此代碼,它只顯示 i 的最后一個值,甚至不顯示原始值。 任何人都可以幫助我嗎? 謝謝

from tkinter import *
from time import sleep

root=Tk()
touracc=StringVar()
printer=Label(root, textvariable=touracc,bg="#85c17e")
touracc.set('yo')

for i in range(2):
    touracc.set(str(i))
    sleep(2)


printer.pack()
root.mainloop()

這是因為sleep()會阻止 tkinter 更新。 使用after()代替:

from tkinter import *

root=Tk()

touracc=StringVar()
printer=Label(root, textvariable=touracc,bg="#85c17e")
printer.pack()
touracc.set('yo')

def update(n=0):
    if n < 2:    
        touracc.set(n)
        root.after(2000, update, n+1)

root.after(2000, update)
root.mainloop()

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM