我有一个用于我的脚本的计数器从30下降,我希望它在0处停止。然后,如果我按下一个按钮我想将它设置回30并且它应该再次开始倒计时。这是我现在的代码:
counter = 30
def counter_label(label):
def count():
global counter
counter -= 1
zähler.config(text=str(counter))
zähler.after(1000, count)
count()
zähler = Label(fg="black")
zähler.grid(row=0, column=0)
zähler.after(29000, jokerfragen)#Does something important for my script.
zähler.config(text="30")
counter_label(zähler)
答案 0 :(得分:1)
使用for
循环,您可以完成相同的操作,而不是使用函数。这样,counter
变量就变得不必要了,您的代码也更容易理解和修改。这是一个例子:
def counter_label():
for counter in range(30, -1, -1): # loops backwards from 30 up to and including 0
zähler.config(text = str(counter))
zähler.after(1000, count)
每当按下按钮时,只需拨打counter_label
,它就会再次从30循环到0。
修改强>
作为对您的评论的回复,请使用以下代码:
def counter_label():
while True: # keeps looping forever
for counter in range(30, -1, -1): # loops backwards from 30 up to and including 0
zähler.config(text = str(counter))
zähler.after(1000, count)
sleep(1000) # waits 1000ms
答案 1 :(得分:0)
def counter_label(label):
def count():
global counter
counter -= 1
counter %= 30
zähler.config(text=str(counter))
zähler.after(1000, count)
count()
通过执行counter %= 30
,一旦达到-1,你可以将计数器重置回29,这与你已经拥有的相同