【问题标题】:How do you refresh a window in Tkinter如何在 Tkinter 中刷新窗口
【发布时间】:2010-07-21 03:04:35
【问题描述】:

如果我用一些填满整个窗口的文本创建了 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 窗口不刷新,只提供最终结果,而不是显示窗口改变颜色。 谢谢您的帮助!

【问题讨论】:

标签: python tkinter


【解决方案1】:

这不是更改 UI 状态的方法,因为即使您刷新窗口,它也会很快您不会注意到,而是更改状态,等待一段时间并再次更改状态,例如这里我展示了如何为颜色设置动画

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()

【讨论】:

    【解决方案2】:

    这就是我在 tkinter GUI python3 中从 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()
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-04-24
      • 2010-12-29
      • 2012-07-01
      • 2020-04-14
      • 1970-01-01
      • 1970-01-01
      • 2014-01-27
      • 1970-01-01
      相关资源
      最近更新 更多