基于Python的简单计时器脚本无法正常工作
我正在测试Python脚本的一个简单计时器,但它没有在Tkinter窗口中显示任何内容基于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
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)。您尝试了哪些方法来解决此问题?