我的目标是创建一个简单的计时器程序。它不断更新自己,直到按下停止按钮。然而,我不确定如何停止刻度函数运行,以便定时器在按下停止按钮后保持不变。
这是我目前的代码:
import tkinter
root = tkinter.Tk()
root.title('Timer')
root.state('zoomed')
sec = 0
def tick():
global sec
sec += 0.1
sec = round(sec,1)
timeLabel.configure(text=sec)
root.after(100, tick)
def stop():
# stop the timer from updating.
timeLabel = tkinter.Label(root, fg='green',font=('Helvetica',150))
timeLabel.pack()
startButton = tkinter.Button(root, text='Start', command=tick)
startButton.pack()
stopButton = tkinter.Button(root, text='Stop', command=stop)
stopButton.pack()
root.mainloop()
停止tick()
函数的可能方法是什么?
任何帮助都将不胜感激!
您可以有另一个全局跟踪您当前是否应该计算蜱。如果您不应该计算刻度,只需让刻度
什么都不做(并且不要再次注册自己)。
import tkinter
root = tkinter.Tk()
root.title('Timer')
root.state('zoomed')
sec = 0
doTick = True
def tick():
global sec
if not doTick:
return
sec += 0.1
sec = round(sec,1)
timeLabel.configure(text=sec)
root.after(100, tick)
def stop():
global doTick
doTick = False
def start():
global doTick
doTick = True
# Perhaps reset `sec` too?
tick()
timeLabel = tkinter.Label(root, fg='green',font=('Helvetica',150))
timeLabel.pack()
startButton = tkinter.Button(root, text='Start', command=start)
startButton.pack()
stopButton = tkinter.Button(root, text='Stop', command=stop)
stopButton.pack()
root.mainloop()
还有其他结构改进(使用类来摆脱全局)和样式改进(snake_case
而不是camelCase
),但这应该会让你指向正确的方向...
问题内容: 我已将一个WAR文件部署到Tomcat服务器,该类之一将在启动时调用,然后init()方法将安排一个计时器,每5小时触发一次以执行一些任务。 我的init()代码如下所示: 我的应用程序运行没有问题,但是当我使用 /etc/init.d/tomcat7 stop 关闭Tomcat时,我检查了日志(catalina.out),它具有以下条目: 严重:Web应用程序[/ MyApplica
怎么停止这个计时器,知道吗? 我想重置计时器在每个查询,但它继续。每个新的查询都会添加新的计时器。这个怎么解决?
问题内容: 我在停止“供稿”时遇到问题;cancel参数似乎对after方法没有任何影响。尽管“进纸停止”已打印到控制台。 我尝试使用一个按钮将启动供稿,而另一个按钮将停止供稿。 随着输出: 问题答案: 问题是,即使你打电话与停止循环,已经有等待消防挂起的工作。按下停止按钮不会触发新的作业,但是旧的作业仍然存在,并且当它自己调用时,它将传入False,这将导致循环继续。 您需要取消待处理的作业,以
我尝试创建一个自定义的时间流逝时间,一旦我按住音量键,它就会启动计时器,并假设时间必须在我松开键后停止,但我松开键时遇到问题,计时器仍在移动。请告诉我我错过了什么谢谢 公共布尔onKeyDown(int-keyCode,KeyEvent-event){if((keyCode==KeyEvent.keyCode_-VOLUME_-DOWN
我正在使用python创建一个控制Tkinter窗口的类对象。我的代码如下所示: 我希望能够启动一个类的实例,然后像这样停止它: 一切正常,窗口在上成功创建,单击按钮并执行时窗口消失。问题是主循环继续运行。我必须使用Ctrl C手动杀死程序,它显示它在。 如果我只是在一个普通的文件中而不是在一个类中执行所有tkinter代码,那么一切都是一样的,但是当我在root上调用destroy时,mainl
问题内容: 我需要使用Python的tkinter库编写程序。 我的主要问题是我不知道如何创建计时器或类似 的时钟hh:。 我需要它来更新自身(这是我不知道该怎么做的)。 问题答案: 根窗口具有一种称为的方法,该方法可用于安排给定时间段后要调用的函数。如果该函数本身调用,则您已设置了一个自动重复事件。 这是一个工作示例: 请记住,这不能保证该功能将完全按时运行。它仅计划在给定的时间后运行作业。由于