如何在Tkinter中刷新窗口

1 投票
2 回答
21197 浏览
提问于 2025-04-16 01:36

如果我创建了一个Tkinter窗口,里面有一些文字填满了整个窗口,现在我想用新的文字替换掉原来的文字,有没有办法刷新这个窗口呢?

举个例子:

    a= 100
    win= Tk() 
    win.geometry("500x300")
    while a > 0:
       if a%2 == 0:
           lbl = Label (win, bg = "purple")
           lbl.pack()
       else:
           lbl = Label (win, bg = "blue")
           lbl.pack()
       a= x-1

这个代码的问题在于,Tkinter窗口没有刷新,只是直接显示了最后的结果,而没有展示窗口颜色变化的过程。

谢谢你的帮助!

2 个回答

0

这是我在tkinter图形界面中如何更新Sql Server数据的方法

from tkinter import *
import os
window=Tk()
window.geometry('300x300')

def update():
 window.destroy()
 os.system('test.py')
Button(window,text="Refresh",command=update)
window.mainloop()
10

这不是改变用户界面状态的正确方法,因为即使你刷新了窗口,变化也会很快,你根本不会注意到。正确的做法是先改变状态,等一段时间后再改变一次状态。比如,我在这里展示了如何让颜色动起来。

from Tkinter import *

index = 0
def changeColor():
    global index
    if index%2==0:
        label.configure(bg = "purple")
    else:
        label.configure(bg = "blue")
    index+=1
    label.after(1000, changeColor)

root = Tk()
mainContainer = Frame(root)
label = Label(mainContainer, text="")
label.configure(text="msg will change every sec")
label.pack(side=LEFT, ipadx=5, ipady=5)
mainContainer.pack()
label.after(1000, changeColor)
root.title("Timed event")
root.mainloop()

撰写回答