秒表计时器是一种用于计算时间间隔的计时器。它通常由一个开始按钮、一个停止按钮和一个重置按钮组成。
使用方法:
- 单击“开始”按钮开始计时。
- 单击“停止”按钮停止计时。
- 单击“重置”按钮将计时器归零。
注意事项:
- 没有对计时器误差进行校准,所以无法避免毫秒误差
- 暂无秒表计次、时钟等功能
运行结果
代码示例
"""
秒表计时器
"""
# 通配符 '*'
__all__ = ['main']
import tkinter as tk
from tkinter import ttk
import time
import timeit
class Timer(tk.Tk):
"""继承tk.Tk()类,创建一个计时器类"""
def __init__(self):
"""构造方法"""
# 调用tk.Tk()类的构造方法
super().__init__()
self.title('秒表计时器') # 标题
self.geometry('300x200+400+200')
# 标签
self.timeVar = tk.StringVar(value='00 : 00 : 00')
self.showLabel = tk.Label(self, textvariable=self.timeVar)
self.showLabel.pack()
# 框架
buttonFrame = tk.Frame(self)
buttonFrame.pack()
# 按键
startButton = ttk.Button(buttonFrame, text='开始', width=5, command=self.startTime)
startButton.pack(side=tk.LEFT)
stopButton = ttk.Button(buttonFrame, text='停止', width=5, command=self.stopTime)
stopButton.pack(side=tk.LEFT)
resetButton = ttk.Button(buttonFrame, text='重置', width=5, command=self.resetTime)
resetButton.pack(side=tk.LEFT)
closeButton = ttk.Button(buttonFrame, text='退出', width=5, command=self.destroy)
closeButton.pack(side=tk.LEFT)
# 重置计时
def resetTime(self):
print('重置计时')
self.stopFlag = 1 # 停止计时旗帜
self.timeVar.set('00 : 00 : 00') # 计时初始化
self.startTime() # 重新计时
# 停止计时
def stopTime(self):
self.stopFlag = 1 # 停止计时旗帜
print('停止计时')
# 开始计时
def startTime(self, event=None):
print('开始计时')
self.stopFlag = 0 # 停止计时旗帜
# 分割时分秒
min, sec, msec = map(int, self.timeVar.get().split(':'))
print(min, sec, msec)
while True:
# 秒钟
while sec < 60:
# 毫秒钟
while msec < 100:
self.timeVar.set('{:0>2d} : {:0>2d} : {:0>2d}' .format(min, sec, msec))
self.update() # 刷新窗口
# 延时
for delay in range(540000): pass
# 结束计时
if self.stopFlag:
return
msec += 1 # 毫秒钟计时
sec += 1 # 秒钟计时
msec = 0 # 毫秒初始化
min += 1 # 分钟计时
sec = 0 # 秒钟初始化
msec = 0 # 毫秒初始化
# 主函数
def main():
pass
# 代码测试
if __name__ == '__main__':
ui = Timer()
ui.mainloop()
else:
print(f'导入{__name__}模块')
作者:周华
创作日期:2023/11/27