定时器的 Tkinter 代码使应用程序崩溃 (python)
Tkinter code for a Timer is crashing the app (python)
我正在为我的测验应用程序创建一个计时器,我决定先在一个单独的程序中试用它,
然而,当我 运行 以下代码并按下 'start timer' 按钮时,应用程序只是停止响应
我被迫通过任务管理器关闭它
from tkinter import *
import time
root=Tk()
root.geometry('{}x{}'.format(300,200))
lb=Label(root,text='')
lb.pack()
def func(h,m,s):
lb.config(text=str(h)+':'+str(m)+':'+str(s))
time.sleep(1)
s+=1
func(h,m,s)
if s==59:
m=1
s=0
bt=Button(root,text='start timer',command=lambda:func(0,0,0))
bt.pack()
root.mainloop()
您需要使用 root.after
而不是 time.sleep
。 another answer 关于制作计时器的内容。这是应用于您的代码的样子:
from tkinter import *
import time
root=Tk()
root.geometry('{}x{}'.format(300,200))
lb=Label(root,text='')
lb.pack()
def func(h,m,s):
lb.config(text=str(h)+':'+str(m)+':'+str(s))
s+=1
if s==59:
m=1
s=0
root.after(1000, lambda: func(h,m,s))
bt=Button(root,text='start timer',command=lambda:func(0,0,0))
bt.pack()
root.mainloop()
我正在为我的测验应用程序创建一个计时器,我决定先在一个单独的程序中试用它, 然而,当我 运行 以下代码并按下 'start timer' 按钮时,应用程序只是停止响应 我被迫通过任务管理器关闭它
from tkinter import *
import time
root=Tk()
root.geometry('{}x{}'.format(300,200))
lb=Label(root,text='')
lb.pack()
def func(h,m,s):
lb.config(text=str(h)+':'+str(m)+':'+str(s))
time.sleep(1)
s+=1
func(h,m,s)
if s==59:
m=1
s=0
bt=Button(root,text='start timer',command=lambda:func(0,0,0))
bt.pack()
root.mainloop()
您需要使用 root.after
而不是 time.sleep
。 another answer 关于制作计时器的内容。这是应用于您的代码的样子:
from tkinter import *
import time
root=Tk()
root.geometry('{}x{}'.format(300,200))
lb=Label(root,text='')
lb.pack()
def func(h,m,s):
lb.config(text=str(h)+':'+str(m)+':'+str(s))
s+=1
if s==59:
m=1
s=0
root.after(1000, lambda: func(h,m,s))
bt=Button(root,text='start timer',command=lambda:func(0,0,0))
bt.pack()
root.mainloop()