[英]how to make a stopwatch/ timer on tkinter
我正在尝试制作一个秒表,它从 00:00:00 开始,并在调用某个方法时停止。 问题是我发现的所有网站和视频都是在 window 中添加实时的教程,而不是实际的计时器/秒表。 那些有效的我也不知道如何放入我的程序中。 请使用以下代码作为示例来创建秒表。 谢谢。
from tkinter import *
root = Tk()
class Start:
def __init__ (self, master):
self.master = master
#code
def timer(self):
#start timer
def end(self):
#end timer
root.mainloop()
您可以使用类似这样的 class:
import time
class StopWatch(object):
def __init__(self):
self.start_time = None
self.stop_time = None
def start(self):
self.start_time = time.time()
def stop(self):
assert self.start_time
self.stop_time = time.time()
@property
def time_elapsed(self):
assert not self.stop_time, \
"Can't check `time_elapsed` on an ended `Stopwatch`."
if not self.start_time:
#timer was not started.
return 0
return time.time() - self.start_time
@property
def total_run_time(self):
assert self.start_time and self.stop_time
return self.stop_time - self.start_time
def __enter__(self):
self.start()
return self
def __exit__(self, type, value, traceback):
self.stop()
if type:
raise type
然后你可以像这样使用它:
m_sw = StopWatch()
m_sw.start()
print (m_sw.time_elapsed)
time.sleep(1)
print (m_sw.time_elapsed)
time.sleep(1)
m_sw.stop()
print(m_sw.total_run_time)
您可以使用日期时间模块:
from datetime import datetime
from tkinter import *
root = Tk()
class Start:
def __init__ (self, master):
self.master = master
self.start_time = None
self.end_time = None
def timer(self):
self.start_time = datetime.now()
def end(self):
if not self.start_time:
raise ValueError("You should call start() function first")
self.end_time = datetime.now() - self.start_time
print(self.end_time)
root.mainloop()
我不知道执行结束后你想做什么,所以我将self.end_time指定为时间测量。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.