tkinter标签在python中无法正确显示

时间:2018-09-05 07:16:31

标签: python python-3.x tkinter

看看代码!

root = Tk()
frame = Frame(root)
labelText = StringVar()
label = Label(frame, textvariable=labelText)
labelText.set("Connecting to the server...")



def welcome_note():
    time.sleep(5)
    labelText.set("Welcome!")

welcome_note()

label.pack()
frame.pack()

root.mainloop()

执行代码时,应将其作为“连接服务器”,然后5秒钟后应显示“欢迎”

但是它仅在5秒钟后执行“欢迎” ...

2 个答案:

答案 0 :(得分:1)

5秒后使用方法after呼叫welcome_note

def welcome_note():
    labelText.set("Welcome!")

root = Tk()
frame = Frame(root)
labelText = StringVar()
label = Label(frame, textvariable=labelText)
labelText.set("Connecting to the server...")
label.pack()
frame.pack()
# Calls welcome_note after 5 seconds
root.after(5000, welcome_note)
root.mainloop()

答案 1 :(得分:0)

这将解决您的问题。发生这种情况是因为您的标签不知道更新的信息。因此,添加这些行将显示更改。

使用此link可获得更多信息。

from tkinter import *
import time
root = Tk()
frame = Frame(root)

labelText = StringVar()

labelText.set("Connecting to the server...")

label = Label(frame, textvariable=labelText)


label.pack() # ADD THIS
frame.pack() # ADD THIS
label.update() # ADD THIS



def welcome_note():
    time.sleep(5)
    labelText.set("Welcome!")
    label.pack()
    frame.pack()

welcome_note()



root.mainloop()