之前捣鼓树莓派时,要求做一个番茄钟,但最后就只是搞成一个与树莓派没啥关系的py程序,虽然简陋,但就此记录一下自学的成果。


程序实现番茄工作法:25分钟工作,5分钟休息

完成一次番茄工作时间,就记一个番茄

(不把休息时间算在里面,有时候自己都不想休息,好吧,是我不知道怎么把番茄工作时间和休息时间联系在一块来记录番茄个数)

这个程序倒计时显示的是从24:59开始,是因为按的时候算是1秒?


运行界面如下:

自己感觉这个界面还行,朴素中带着点高级感


代码参考了一些大佬写的番茄钟程序,特别是那个倒计时的实现,很神奇.

代码如下:

import tkinter
from tkinter import messagebox
import time#创建番茄钟窗口
root = tkinter.Tk()
root.title('番茄钟小程序')
root.geometry('300x300')
root.configure(bg='Tomato')#创建计数的
count = 0#创建完成计时后的弹窗
def mymsg():tkinter.messagebox.showinfo("提示", "恭喜完成一个番茄钟!!记得休息一下")
def mymsg2():tkinter.messagebox.showinfo("提示", "休息完毕!")#创建番茄计时函数
# strptime()函数将字符串转换为datetime
def tomato_clock():remain_time = 1500bb = time.strftime('/  %M:%S', time.gmtime(remain_time))lb2.configure(text=bb)lb3.configure(text='剩余时间/总时间')for i in range(1500):remain_time -= 1aa = time.strftime('%M:%S', time.gmtime(remain_time))lb.configure(text=aa)root.update()time.sleep(1)if remain_time == 0:tomato_count()mymsg()#创建计数的函数
def tomato_count():global countcount += 1lb4.configure(text=count)#创建休息时间函数
def relax():remain_time = 300bbb = time.strftime('/  %M:%S', time.gmtime(remain_time))lb2.configure(text=bbb)lb3.configure(text='剩余时间/总时间')for i in range(300):remain_time -= 1aaa = time.strftime('%M:%S', time.gmtime(remain_time))lb.configure(text=aaa)root.update()time.sleep(1)if remain_time == 0:mymsg2()#创建各种标签#番茄动态计时
lb = tkinter.Label(root, text=' ', bg='Tomato', fg='white', font='Verdana 16 bold', width=7, height=1)
lb.place(x=50, y=100)#番茄固定时间
lb2 = tkinter.Label(root, text=' ', bg='Tomato', fg='white', font='Verdana 16 bold', width=8, height=1)
lb2.place(x=138, y=100)#剩余时间/总时间
lb3 = tkinter.Label(root, text=' ', bg='Tomato', fg='white', font='Verdana 16 bold', width=14, height=2)
lb3.place(x=50, y=44)#番茄个数显示
lb4 = tkinter.Label(root, text='0', bg='Tomato', fg='white', font='Verdana 16 bold', width=7, height=1)
lb4.place(x=25, y=20)#左上角的 番茄:
lb5 = tkinter.Label(root, text='番茄:', bg='Tomato', fg='white', font='Verdana 16 bold', width=4, height=1)
lb5.place(x=5, y=20)#按钮
#开启一个番茄
Button1 = tkinter.Button(root, text='开启一个番茄', bg='orange', fg='black', font='Verdana 13 bold', width=15, height=1, command=tomato_clock)
Button1.place(x=70, y=150)#休息一下
Button2 = tkinter.Button(root, text='休息一下', bg='cornflowerblue', fg='black', font='Verdana 13 bold', width=15, height=1, command=relax)
Button2.place(x=70, y=200)#循环
root.mainloop()

python 用tkinter 做一个简易番茄钟相关推荐

  1. python代码雨在桌面实现_今天七夕节,外面下着大雨,用Python的tkinter做一个下爱心雨的特效,发给妹子...

    正文 今天七夕,还下着雨,刚好想做一个下着爱心雨的特效 准备图片素材 1.美图秀秀找一个爱心图,大小就50*50就可以,生成的是一个png格式文件 2.由于canvas.create_image只支持 ...

  2. python小案例随机点名_python用tkinter实现一个简易能进行随机点名的界面

    今天学到Python 有一个名为 random 的内置模块,可用于生成随机数, 这个好玩~可以用来做为上课随机点名的程序了哈哈.. def main_cor(): import random i = ...

  3. python大学随机点名名_python用tkinter实现一个简易能进行随机点名的界面

    今天学到Python 有一个名为 random 的内置模块,可用于生成随机数, 这个好玩~可以用来做为上课随机点名的程序了哈哈.. def main_cor(): import random i = ...

  4. 怎么用python制作随机点名软件_python用tkinter实现一个简易能进行随机点名的界面...

    今天学到Python 有一个名为 random 的内置模块,可用于生成随机数, 这个好玩~可以用来做为上课随机点名的程序了哈哈.. def main_cor(): import random i = ...

  5. 怎么用线程刷新 tkinter 进度条_tkinter做一个简易提词板(2)

    书接上文 花果山美男子:tkinter做一个简易提词板​zhuanlan.zhihu.com 上回说到,文字的动态效果还可以用after方法和StringVar来实现,今天我们就用它们来重新制作提词板 ...

  6. 【新手向】Python做一个简易登录注册GUI界面(无事件绑定)

    Python做一个简易登录注册GUI界面 一,效果展示 (1)运行结果: (2)点击登录: 注:只有用户名:123 密码123456 会提示登录成功. 登录成功示范: 登录失败示范: (3)点击注册 ...

  7. 用python简易英汉互译界面_python之做一个简易的翻译器(一)

    平时经常在网上翻译一些单词,突发奇想,可不可以直接调某些免费翻译网站的接口呢?然后做一个图形界面的翻译小工具?下面开始实践 1.先找一下有哪些免费翻译的接口 百度了一下关键字"免费翻译接口& ...

  8. python之做一个简易的翻译器(一)

    平时经常在网上翻译一些单词,突发奇想,可不可以直接调某些免费翻译网站的接口呢?然后做一个图形界面的翻译小工具?下面开始实践 1.先找一下有哪些免费翻译的接口 百度了一下关键字"免费翻译接口& ...

  9. python发音机器人_只需三步,菜鸟也能用Python做一个简易版Siri

    原标题:只需三步,菜鸟也能用Python做一个简易版Siri 当下,各个手机厂商都陆续的推出了属于自己的智能手机机器人,像是苹果的Siri,小米的小爱,还有等等.这些智能机器人不仅仅方便了我们对于手机 ...

最新文章

  1. Sun副总裁:绿色数据中心需分四步走
  2. C#的winform拼数字游戏
  3. MySQL 优化原理(二)
  4. 【转】ABAP BASE64编码与解码练习
  5. leetcode 打印_剑指 Offer 32 - III 从上到下打印二叉树 III - leetcode 剑指offer
  6. jQuery事件4——hover
  7. linux调用ocx插件_Wordpress file manager插件任意文件上传
  8. 浙江省计算机二级办公软件高级应用技术真题,浙江省计算机二级办公软件高级应用技术考试题库.doc...
  9. 软件设计方案说明书的编写
  10. DNk开发步骤与环境配置
  11. Android 利用adb命令 使App自动点击屏幕指定位置
  12. SNS2124SNS2224SNS2248 光纤交换机配置
  13. 南华大学【软卓】【ACM协会】【其它学习生活方面】QA
  14. 小程序云开发之消息推送功能
  15. spring框架三种类型项目实现--基础maven类型、纯注解开发型、aop结合注解开发型
  16. 用swoole实现实时弹幕网站demo
  17. 边际生产力理论(转载)
  18. 基于STM32F767通过STM32CubeMX实现ModbusTCP从站(后续)
  19. Navicat的mysql远程登录方法详解
  20. Pytorch搭建LeNet5

热门文章

  1. BAT脚本打开重复打开软件
  2. VRRP与BFD的联动
  3. Zabbix监控之监控项
  4. GSM信令流程[转]相当不错
  5. OneNav一为主题魔改教程(二):使用纯css增加网站Logo扫光效果--洞五洞洞幺
  6. 什么是 Tableau?
  7. 中国土地市场网-js解密
  8. 大卫·华尔兹(David Waltz)---搜索和人工智能之父
  9. 任何行业都能用上的名词(用于提升逼格)
  10. 火狐浏览器油猴子GreaseMonkey使用教程