首页 > 解决方案 > 无法更新标签文本

问题描述

我正在尝试运行一个简单的 GUI,它每隔几秒就更改一次标签文本。我是使用 tkinter 的新手,不了解每件事是如何工作的,但从我在网上收集的信息来看,after() 方法应该调用我编写的函数来更改标签文本,但它不起作用?任何帮助是极大的赞赏。

from tkinter import *
import time

root = Tk()
root.title("Blank")
root.geometry("480x240")

label = Label(
    root,
    text = "hello",
    font = ("Arial", 42)
)

label.pack(fill = BOTH, expand = True)

def updater():
    label.config(text = "Test 1")
    time.sleep(1)
    label.config(text = "Test 2")

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

标签: pythonpython-3.xtkinter

解决方案


其实只是自己想出来的。工作代码现在如下所示:

from tkinter import *
import time

root = Tk()
root.title("Blank")
root.geometry("480x240")

label = Label(
    root,
    text = " ",
    font = ("Arial", 42)
)

label.pack(fill = BOTH, expand = True)

def changeString1():
    label.config(text = "Test 1")
    label.after(1000, changeString2)

def changeString2():
    label.config(text = "Test 2")
    label.after(1000, changeString1)


changeString1()
root.mainloop()

再次,因为我是 tkinter 的新手,我不知道这是否是一个可接受的解决方案,但它有效,所以我很高兴。


推荐阅读