Python 如何在tkinter上制作秒表/计时器
我试图制作一个秒表,它从00:00:00开始,在调用某个方法时停止。问题是,我找到的所有网站和视频都是关于在窗口中添加实时的教程,而不是实际的计时器/秒表。那些有效的我也不知道如何在我的程序中加入。请使用下面的代码作为示例来创建秒表。谢谢Python 如何在tkinter上制作秒表/计时器,python,tkinter,Python,Tkinter,我试图制作一个秒表,它从00:00:00开始,在调用某个方法时停止。问题是,我找到的所有网站和视频都是关于在窗口中添加实时的教程,而不是实际的计时器/秒表。那些有效的我也不知道如何在我的程序中加入。请使用下面的代码作为示例来创建秒表。谢谢 from tkinter import * root = Tk() class Start: def __init__ (self, master): self.master = master #code d
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()
您可以使用日期时间模块:
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\u time指定为测量的时间。您可以使用类似于此类的内容:
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)
你好,马克,我能知道你为什么一遍又一遍地问这个问题吗??告诉我们这对你没有什么帮助吗?@saad我已经试过了建议问题中的代码,它是不同的。那个显示当前时间,而我想要一个计时器,秒表从00:00:00开始,而不是从当前时间开始。@MarkLin你不需要问新问题。只要做一个谷歌搜索。从中,你得到了很多结果。从那以后,你可以设置当前时间,然后计算。@saad这不是我想要的,互联网上充斥着设置当前时间的内容,而我想要的是一个计时器,一个秒表,而不是我一直找不到的当前时间,你共享的答案是当前时间,我已经尝试过了。From
datetime.now()
im假设您正在使用当前时间?我希望时间是00:00:00,所以它是一个真正的秒表,而不是时钟。我只是假设代码没有运行。