关键词:python,计时,python计时,计时器,python计时器
来源搞代码网《python计时器源码》http://www.gaodaima.com/68546.html
python计时器源码
import tkinter import threading import time # 创建窗口 from1 = tkinter.Tk() # 窗口标题 from1.title('帅哥哥计时器') # 窗口大小 from1.minsize(400, 400) isloop = False # 初始化按钮False为停止 True为开始 var = tkinter.StringVar() stopid = None # 定义一个空值 '''********* 计时函数 *********''' def gettime(): global isloop global stopid global star global fo elap = time.time() - star # 获取时间差 if isinstance(stopid, float): a = stopid elap = elap + a minutes = int(elap / 60) # 分钟 seconds = int(elap - minutes * 60.0) # 秒 hseconds = int((elap - minutes * 60.0 - seconds) * 1000) # 毫秒 var.set('%02d:%02d:%03d' % (minutes, seconds, hseconds)) if isloop == False: but1['text'] = '继续' stopid = elap # 把暂停时的时间差赋给 stopid (有记忆) fo.write('%02d:%02d:%03d' % (minutes, seconds, hseconds) +"\n") # 记录时间 fo.close() # 关闭文件 return from1.after(1, gettime) # 每隔1ms调用函数自身获取时间 '''********* 开始\暂停按钮函数 **********''' def newtask(): global isloop global star global fo if but1['text'] == '开始' or but1['text'] == '继续': # 根据按钮的文本来判断是否开启循环 if but1['text'] == '开始': fo = open("record.txt", "w") # 开始时清楚上一次记录的内容 else: fo = open("record.txt", "a") # 追加暂停时的时间 but1['text'] = '暂停' isloop = True star = time.time() # 获取当前时间 # 建立线程 t = threading.Thread(target=gettime) # 开启线程 t.start() else: isloop = False '''******* 清零按钮函数 ********''' def clearing(): global isloop global stopid isloop = False # 初始化按钮为停止 stopid = None # 定义一个空值 var.set('00:00:000') but1['text'] = '开始' # 开始\暂停 按钮 but1 = tkinter.Button(from1, text='开始', command=newtask) but1.place(x=95, y=280, width=80, height=50) # 按钮位置和大小 # 重置按钮 but2 = tkinter.Button(from1, text='清零', command=clearing) but2.place(x=225, y=280, width=80, height=50) # # 显示时间 var.set('00:00:000') # 初始化时间 lab1 = tkinter.Label(from1, textvariable=var, font=("Arial Bold", 30), foreground="red") lab1.place(x=110, y=150) # from1.overrideredirect(1) # 隐藏标题栏 最大化最小化按钮 from1.attributes("-toolwindow", 1) # 去掉窗口最大化最小化按钮,只保留关闭 # 显示窗体 from1.mainloop()