我这里有一个计数器功能。
我的问题是如何在点击按钮后再次将计数器设置为0
。
import tkinter
import sys
root=tkinter.Tk()
root.geometry("200x200")
root.title("His Button Increaser")
counter=tkinter.IntVar()
def OnClick(event=None):
counter.set(counter.get() + 1)
tkinter.Label(root, textvariable=counter).pack()
tkinter.Button(root, text="One up", command=onClick).pack()
root.mainloop()
答案 0 :(得分:1)
不完全清楚你在问什么。如果要在单击按钮后的某个时间重置计数器,可以在函数末尾添加对after
的调用:
def onClick(event=None):
counter.set(counter.get() + 1)
root.after(3000, lambda: counter.set(0))
这将在第一次点击按钮时开始倒计时(之后每隔一次),并在倒计时结束时将计数器重置为0
。请注意,倒计时本身不会在稍后点击时重置。
如果你不希望堆叠after
回调,你可以保留对最后一个事件的ID的引用,并在发出下一个之前取消它:
last_after = None
def onClick(event=None):
counter.set(counter.get() + 1)
global last_after
if last_after:
root.after_cancel(last_after)
last_after = root.after(3000, lambda: counter.set(0))