python tkinter 上的标签文本不会立即更改

Label text not changing instantly on python tkinter

在此脚本中,标签文本仅在 2 秒后更改。是否可以立即更改标签文本?我需要 time.sleep(2) 因为我正在使用 python-vlc 并且我想在播放音频之前更改标签文本。

import tkinter
import time

class MyGUI:
    def __init__(self):
        self.root = tkinter.Tk()
        self.testLabel = tkinter.Label(self.root, text = 'I am suhail')
        self.changetextBtn = tkinter.Button(self.root,text="change txt", command=self.chngbtn)
        self.testLabel.pack()
        self.changetextBtn.pack()
        self.n_clicks = 0

        tkinter.mainloop()

    def chngbtn(self):
        self.testLabel["text"] = f'Changed text: {self.n_clicks} times'
        self.n_clicks+=1
        time.sleep(2)

myGUI = MyGUI()

你可以在https://github.com/suhailvs/pyqurantorah/blob/bbe0dfa81a9248e1932f746b3b5fcf4548fc58f9/forms/quran.py#L100

看到我正在尝试的代码

您可以在更改标签后立即使用self.root.update()self.root.update_idletasks()刷新它。

def chngbtn(self):
    self.testLabel["text"] = f'Changed text: {self.n_clicks} times'
    self.root.update() # or self.root.update_idletasks()
    self.n_clicks+=1
    time.sleep(2)