Python利用tkinter实现一个简易番茄钟的示例代码

作者:X_chaotu 时间:2021-03-02 17:20:59 

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

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

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

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

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

运行界面如下:

Python利用tkinter实现一个简易番茄钟的示例代码

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

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

代码如下:

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 = 1500
   bb = time.strftime('/  %M:%S', time.gmtime(remain_time))
   lb2.configure(text=bb)
   lb3.configure(text='剩余时间/总时间')
   for i in range(1500):
       remain_time -= 1
       aa = 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 count
   count += 1
   lb4.configure(text=count)

#创建休息时间函数
def relax():
   remain_time = 300
   bbb = time.strftime('/  %M:%S', time.gmtime(remain_time))
   lb2.configure(text=bbb)
   lb3.configure(text='剩余时间/总时间')
   for i in range(300):
       remain_time -= 1
       aaa = 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()

来源:https://blog.csdn.net/X_chaotu/article/details/127328735

标签:Python,tkinter,番茄钟
0
投稿

猜你喜欢

  • 详解在Spring Boot中使用数据库事务

    2024-01-15 23:20:28
  • pycharm激活方法到2099年(激活流程)

    2022-11-17 05:45:35
  • 教你怎么用Python实现自动生日祝福

    2022-04-08 01:03:25
  • Django form表单与请求的生命周期步骤详解

    2023-06-20 06:29:15
  • css+html+js实现五角星评分

    2024-02-24 17:07:24
  • python使用ctypes模块调用windowsapi获取系统版本示例

    2023-05-04 08:46:48
  • python实现二分查找算法

    2022-08-30 21:58:54
  • 关于Python卷积函数详解

    2023-06-14 01:09:27
  • Python开发工具Pycharm的安装以及使用步骤总结

    2022-09-15 08:21:01
  • 用户凭什么跟你注册?

    2011-06-10 13:16:00
  • 一个将半角"转换为中文"的asp函数

    2007-09-19 11:47:00
  • 关于JavaScript中的this指向问题总结篇

    2024-04-29 13:21:25
  • 20个优秀网站助你征服CSS[译]

    2008-09-21 13:21:00
  • 使用Python发送各种形式的邮件的方法汇总

    2022-12-21 15:24:46
  • Python中你所不知道的星号 * 用法

    2022-08-06 15:25:43
  • Scratch3.0二次开发之windows环境下打包成exe的流程

    2022-12-31 03:27:34
  • 23条科学设计你网站的方法

    2008-03-23 14:12:00
  • Golang详细讲解常用Http库及Gin框架的应用

    2023-08-25 23:14:41
  • 解决Python中pandas读取*.csv文件出现编码问题

    2023-10-15 11:48:42
  • Python入门_浅谈逻辑判断与运算符

    2023-11-09 05:45:26
  • asp之家 网络编程 m.aspxhome.com