我想用tkinter编写一个简单的计时器。 我有一个开始按钮:
start_button = tkinter.Button(root, bg="white", text="Start", command=start_button_clicked)
以及在点击
上运行的命令def start_button_clicked():
start_button.config(text='Started', state='disabled')
tm = timer.Timer()
tm.count_time(1)
我期待它
但事实上,只有在计时器用完后才会更改按钮参数。 为什么会发生这种情况?如何在点击后立即更改按钮?
答案 0 :(得分:0)
您正在错误地使用Timer()函数。您可以尝试使用“时间”库创建计时器或使用time.delay(10)
。但是,如果您想使用Timer()
,则可以执行以下操作:
from threading import Timer
from tkinter import *
def disable_button():
start_button.config(text='Started', state='disabled')
def start_button_clicked():
tm = Timer(3, disable_button)
tm.start()
root = Tk()
root.minsize(100, 100)
start_button = tkinter.Button(root, bg="white", text="Start", command=start_button_clicked)
start_button.pack()
root.mainloop()
答案 1 :(得分:0)
我无法识别timer.Timer(),但是如果你想在配置中添加root.update()后立即更改按钮的状态
def start_button_clicked():
start_button.config(text='Started', state='disabled')
root.update()
tm = timer.Timer()
tm.count_time(1)