python

关注公众号 jb51net

关闭
首页 > 脚本专栏 > python > Python tkinter番茄钟

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

作者:X_chaotu

番茄钟是番茄工作法使用的一个时间表,即选择一个待完成的任务,将番茄时间设为25分钟,专注工作,中途不允许做任何与该任务无关的事,直到番茄时钟响起,然后在纸上画一个X短暂休息一下。本文用tkinter实现一个简易番茄钟,需要的可以参考一下

之前捣鼓树莓派时,要求做一个番茄钟,但最后就只是搞成一个与树莓派没啥关系的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 = 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()

到此这篇关于Python利用tkinter实现一个简易番茄钟的示例代码的文章就介绍到这了,更多相关Python tkinter番茄钟内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

您可能感兴趣的文章:
阅读全文