经过一定时间后,如何使Tkinter Label文本更改?

时间:2019-02-10 18:38:50

标签: python tkinter time var

我正在设置一个GUI应用程序,但是在time.sleep()计时器的Tkinter标签上更改文本时遇到问题。

我尝试过类似的事情

[sudo] gem install cocoapods-deintegrate cocoapods-clean

(请注意,我具有网格系统和tkinter窗口设置,我只是不会在其中显示所有代码)

label_text = Label(main_window, text="hello world")
time.sleep(3)
label_text = Label(main_window, text="hello world")

还有这个

# Currently this is not working how I would like it to, but here is the code
main_window = tkinter.Tk()
label_text = Label(main_window, text="hello world")
time.sleep(3)
label_text = Label(main_window, text="hello")
label_text.grid(column=1, row=1)

main_window.mainloop() 

谢谢!

2 个答案:

答案 0 :(得分:1)

我认为这可以满足您的需求。您需要使用tk_obj.after来获取时间延迟。 在问题代码中,sleep将对mainloop的调用延迟了3秒。

but parameter 'Optional[pageRequest]' not found in annotated query 'select c from Component

正如评论所说,您可以使用链接到标签的StringVar。然后on_after将需要更改StringVar而不是配置标签。

编辑:为了完整起见,使用StringVar版本

main_window = tk.Tk()
label_text = tk.Label(main_window, text="hello world")

def on_after():
    label_text.configure( text="hello")

label_text.grid(column=1, row=1)
label_text.after(3000, on_after) # after 3000 ms call on_after

main_window.mainloop()

答案 1 :(得分:-1)

尝试使用StringVar()数据类型

mytext = StringVar()
label_text = Label(main_window, text=mytext)
mytext.set("hello")
#after sometime change the text as required
mytext.set("new text")

希望这会起作用。