单击按钮后如何将计数器再次设置为0?

时间:2018-04-19 20:25:09

标签: python tkinter counter

我这里有一个计数器功能。

我的问题是如何在点击按钮后再次将计数器设置为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()

1 个答案:

答案 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))