12345下一页
返回列表 发新帖

【开源代码】python计时器

  [复制链接]

34

主题

772

回帖

3001

积分

大学生

Rank: 5Rank: 5

金币
101
好评
44
信誉
153

MT论坛新人考神MT论坛帅哥

QQ
发表于 2022-7-4 21:05:17 | 显示全部楼层 | 阅读模式  来自 河南
今天分享一个编写计时器的Python源码
  1. print("作 者: 趣探坊&清风Ring")
  2. print("点击开始按钮 开始计时 同时按钮上的标签变为暂停 点击暂停按钮 停止计时 同时按钮上的标签变为开始每一次暂停所对应的计时时间都记录到 record.txt点击清零按钮 停止计时 时间变为 00:00:000")
  3. import tkinter
  4. import threading
  5. import time

  6. # 创建窗口
  7. from1 = tkinter.Tk()
  8. # 窗口标题
  9. from1.title('清风Ring计时器')
  10. # 窗口大小
  11. from1.minsize(400, 400)

  12. isloop = False  # 初始化按钮False为停止 True为开始
  13. var = tkinter.StringVar()
  14. stopid = None  # 定义一个空值

  15. '''********* 计时函数 *********'''
  16. def gettime():
  17.     global isloop
  18.     global stopid
  19.     global star
  20.     global fo

  21.     elap = time.time() - star  # 获取时间差

  22.     if isinstance(stopid, float):
  23.         a = stopid
  24.         elap = elap + a
  25.     minutes = int(elap / 60)  # 分钟
  26.     seconds = int(elap - minutes * 60.0)  # 秒
  27.     hseconds = int((elap - minutes * 60.0 - seconds) * 1000)  # 毫秒
  28.     var.set('%02d:%02d:%03d' % (minutes, seconds, hseconds))

  29.     if isloop == False:
  30.         but1['text'] = '继续'
  31.         stopid = elap   # 把暂停时的时间差赋给 stopid (有记忆)
  32.         fo.write('%02d:%02d:%03d' % (minutes, seconds, hseconds) +"\n")  # 记录时间
  33.         fo.close()  # 关闭文件
  34.         return

  35.     from1.after(1, gettime)  # 每隔1ms调用函数自身获取时间

  36. '''********* 开始\暂停按钮函数 **********'''
  37. def newtask():
  38.     global isloop
  39.     global star
  40.     global fo
  41.     if but1['text'] == '开始' or but1['text'] == '继续':  # 根据按钮的文本来判断是否开启循环
  42.         if but1['text'] == '开始':
  43.             fo = open("record.txt", "w")  # 开始时清楚上一次记录的内容
  44.         else:
  45.             fo = open("record.txt", "a")  # 追加暂停时的时间
  46.         but1['text'] = '暂停'
  47.         isloop = True
  48.         star = time.time()  # 获取当前时间
  49.         # 建立线程
  50.         t = threading.Thread(target=gettime)
  51.         # 开启线程
  52.         t.start()
  53.     else:
  54.         isloop = False

  55. '''******* 清零按钮函数 ********'''
  56. def clearing():
  57.     global isloop
  58.     global stopid
  59.     isloop = False  # 初始化按钮为停止
  60.     stopid = None  # 定义一个空值
  61.     var.set('00:00:000')
  62.     but1['text'] = '开始'

  63. # 开始\暂停 按钮
  64. but1 = tkinter.Button(from1, text='开始', command=newtask)
  65. but1.place(x=95, y=280, width=80, height=50)  # 按钮位置和大小
  66. # 重置按钮
  67. but2 = tkinter.Button(from1, text='清零', command=clearing)
  68. but2.place(x=225, y=280, width=80, height=50)
  69. # # 显示时间
  70. var.set('00:00:000')  # 初始化时间
  71. lab1 = tkinter.Label(from1, textvariable=var, font=("Arial Bold", 30), foreground="red")
  72. lab1.place(x=110, y=150)

  73. # from1.overrideredirect(1) # 隐藏标题栏 最大化最小化按钮
  74. from1.attributes("-toolwindow", 1)  # 去掉窗口最大化最小化按钮,只保留关闭

  75. # 显示窗体
  76. from1.mainloop()
复制代码
效果:(点开观看GIF图)

要我出python教程的评论区回复“教程”
回复

使用道具 举报

34

主题

772

回帖

3001

积分

大学生

Rank: 5Rank: 5

金币
101
好评
44
信誉
153

MT论坛新人考神MT论坛帅哥

QQ
发表于 2022-7-4 21:09:39 | 显示全部楼层  来自 河南
自古楼主是沙发
回复

使用道具 举报

43

主题

4301

回帖

1万

积分

博士生

Rank: 7Rank: 7Rank: 7

金币
4505
好评
1
信誉
100

MT论坛帅哥考神MT论坛新人

发表于 2022-7-4 21:10:30 来自手机  | 显示全部楼层  来自 广东
教程。。。
回复

使用道具 举报

84

主题

3695

回帖

9401

积分

禁止发言

金币
1951
好评
111
信誉
70

考神MT论坛新人MT论坛帅哥MT论坛活跃会员MT论坛侠客

发表于 2022-7-4 21:11:20 | 显示全部楼层  来自 山西
大佬厉害,
论坛新一代py大佬
签名被屏蔽
回复

使用道具 举报

24

主题

2112

回帖

7078

积分

硕士生

Rank: 6Rank: 6

金币
1844
好评
14
信誉
100

MT论坛帅哥考神MT论坛最佳新人MT论坛新人MT论坛活跃会员

QQ
发表于 2022-7-4 21:11:27 来自手机  | 显示全部楼层  来自 安徽
快看快看
回复

使用道具 举报

34

主题

772

回帖

3001

积分

大学生

Rank: 5Rank: 5

金币
101
好评
44
信誉
153

MT论坛新人考神MT论坛帅哥

QQ
发表于 2022-7-4 21:13:36 | 显示全部楼层  来自 河南

收到,有时间就出
回复

使用道具 举报

34

主题

772

回帖

3001

积分

大学生

Rank: 5Rank: 5

金币
101
好评
44
信誉
153

MT论坛新人考神MT论坛帅哥

QQ
发表于 2022-7-4 21:14:03 | 显示全部楼层  来自 河南
最强小学生 发表于 2022-7-4 21:11
大佬厉害,
论坛新一代py大佬

哈哈,谢谢赞赏
回复

使用道具 举报

0

主题

8

回帖

19

积分

幼儿园

Rank: 1

金币
14
好评
0
信誉
98
发表于 2022-7-4 21:14:47 来自手机  | 显示全部楼层  来自 江苏
?恭喜你答对有奖品牌吗我也不会说我不是
回复

使用道具 举报

14

主题

1614

回帖

4410

积分

大学生

Rank: 5Rank: 5

金币
2095
好评
2
信誉
101

考神MT论坛新人MT论坛帅哥

发表于 2022-7-4 21:23:43 来自手机  | 显示全部楼层  来自 新疆
看看大佬
回复

使用道具 举报

1

主题

6308

回帖

1万

积分

博士生

Rank: 7Rank: 7Rank: 7

金币
7984
好评
2
信誉
100
发表于 2022-7-4 21:27:06 来自手机  | 显示全部楼层  来自 河南
看看隐藏
回复

使用道具 举报

4

主题

4189

回帖

1万

积分

博士生

小白

Rank: 7Rank: 7Rank: 7

金币
5877
好评
14
信誉
102

MT论坛最佳新人考神

发表于 2022-7-4 21:28:30 来自手机  | 显示全部楼层  来自 湖南
就喜欢py
回复

使用道具 举报

5

主题

2151

回帖

1万

积分

博士生

Rank: 7Rank: 7Rank: 7

金币
2475
好评
5
信誉
100

MT论坛帅哥

发表于 2022-7-4 21:44:52 来自手机  | 显示全部楼层  来自 福建
py,和java到循环就没学了,三分钟热度
回复

使用道具 举报

0

主题

6570

回帖

1万

积分

博士生

Rank: 7Rank: 7Rank: 7

金币
6322
好评
0
信誉
108

考神MT论坛新人MT论坛帅哥

发表于 2022-7-4 22:10:39 来自手机  | 显示全部楼层  来自 江苏
感谢分享
回复

使用道具 举报

4

主题

209

回帖

8514

积分

硕士生

Rank: 6Rank: 6

金币
207
好评
0
信誉
102
发表于 2022-7-4 22:23:39 来自手机  | 显示全部楼层  来自 重庆
回复看看
回复

使用道具 举报

24

主题

3054

回帖

7656

积分

硕士生

Rank: 6Rank: 6

金币
273
好评
22
信誉
222

MT论坛帅哥MT论坛新人考神

发表于 2022-7-4 22:39:47 来自手机  | 显示全部楼层  来自 北京
提示: 作者被禁止或删除 内容自动屏蔽
回复

使用道具 举报

发表回复

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表