基于Python的简单计时器脚本无法正常工作

基于Python的简单计时器脚本无法正常工作,python,python-3.x,timer,Python,Python 3.x,Timer,我正在测试Python脚本的一个简单计时器,但它没有在Tkinter窗口中显示任何内容 import time from tkinter import * def clicked(): val = int(val_Box.get()) val1 = 0 global display_Time while val1 < val: display_Time.configure(text=str(val)) display_Ti

我正在测试Python脚本的一个简单计时器,但它没有在Tkinter窗口中显示任何内容

import time
from tkinter import *

def clicked():
    val = int(val_Box.get())
    val1 = 0
    global display_Time

    while val1 < val:
        display_Time.configure(text=str(val))
        display_Time = Label(window,text="",fg="Blue")
        display_Time.grid(column=10,row=10)

        time.sleep(1)
        val -= 1
    display_Time.configure(text="Timer Finished")

window = Tk()
window.title("Simple Timer App")
window.geometry("300x200")

clock_Time = Label(window,text= "Enter Clock Time",fg="Green")
clock_Time.grid(column=0,row=0)

val_Box = Entry(window,width = 10,bg = "Yellow")
val_Box.grid(column=1,row=0) 

display_Time = Label(window,text="" ,fg="Blue")
display_Time.grid(column=2,row=10)

start_Button = Button(window,text = "START",fg = "Blue",command = clicked)
start_Button.grid(column=0,row=10) 

window.mainloop()
导入时间
从tkinter进口*
def clicked():
val=int(val_Box.get())
val1=0
全局显示时间
而val1
输出未显示输入值的顺序减少。我需要一些建议

这就是计时器的样子


您需要
更新该窗口,以使更改生效。您可以通过调用
window.update()
来实现这一点。此外,您还将覆盖在while循环期间用作计时器显示的标签。没有理由这样做。因此,您可以安全地删除相应的两条线。实际上,重写的
while
循环应该如下所示:

while val1 < val:
        display_Time.configure(text=str(val))
        window.update()
        time.sleep(1)
        val -= 1
而val1

还要注意,单击的
函数将阻止GUI线程,直到计时器完成。可能更适合启动单独的计时器线程,例如从线程导入计时器启动
(查看如何使用它重复执行任务,例如更新GUI)。

您尝试了哪些方法来解决此问题?