Python利用tkinter实现一个简易番茄钟的示例代码
作者:X_chaotu 发布时间:2021-03-02 17:20:59
标签:Python,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()
来源:https://blog.csdn.net/X_chaotu/article/details/127328735
0
投稿
猜你喜欢
- 前言这一期我们继续完善我们的魔塔小游戏。废话不多说,让我们愉快地开始吧~开发工具Python版本: 3.7.4相关模块:cpgam
- 用在产品内容展示的页面上,给产品图片加上提示工具条,鼠标移动图片上即可看到效果,效果还是不错的:带黑白效果和放大图片效果(by misshj
- 简介ICO是一种图标文件格式,图标文件可以存储单个图案、多尺寸、多色板的图标文件。一个图标实际上是多张不同格式的图片的集合体,并且还包含了一
- 在照着Tensorflow官网的demo敲了一遍分类器项目的代码后,运行倒是成功了,结果也不错。但是最终还是要训练自己的数据,所以尝试准备加
- 写在前面在用pd.read_csv读取数据集时,我有2个疑问?1是:写相对路径还是绝对路径。2是:相对路径,绝对路径怎么写。这篇文章就是解决
- 每个浏览器都有自己的默认样式,这是一段预定义的CSS,用以简单地呈现网页。在Firefox中的地址栏中输入resource://gre/re
- 百度,谷歌之后都说用setHintSize(self,QCore.QSize(width,height)),然并卵,后来用qss修改就可以了
- 用mysqlbinlog.exe查看二进制日志是否启用了日志mysql>show variables like 'log%
- selenium主要是用来做自动化测试,支持多种浏览器,爬虫中主要用来解决JavaScript渲染问题。模拟浏览器进行网页加载,当reque
- 认识pip众所周知,pip可以对python的第三方库进行安装、更新、卸载等操作,十分方便。pip的全称:package installer
- Python request获取网页中文乱码问题r = requests.get(“http://www.baidu.com“)
- 此文译自Fred Wilson 2010年2月在迈阿密举行的Web未来应用的年会上的演讲谢谢青云推荐了这篇这么好的演说谢谢卓和百忙中抽空帮我
- 机器学习分两大类,有监督学习(supervised learning)和无监督学习(unsupervised learning)。有监督学习
- 前言大家应该都有所体会,对于字符串型的IP存入数据库中,实在是个即浪费空间又浪费性能的家伙,所以可爱的人们想出来将IP转换为整型存储。MyS
- 本文实例讲述了Python通过TensorFLow进行线性模型训练原理与实现方法。分享给大家供大家参考,具体如下:1、相关概念例如要从一个线
- 本文向大家分享了几段Python生成数字图片的代码,喜欢的朋友可以参考。具体如下:最终版本# -*- coding:utf-8 -*-fro
- 尽管人们期望在屏幕上有些改变,但是CSS和HTML对页面中的交互能做的实在太少了,而那些还需要用代码来实现。比如一个链接要么是这个颜色,要么
- 初学初用,随手记录以当作笔记使用,会慢慢再进行补充添加,错误之处烦请指正。(1)运行本地文件,在代码不加载的情况下可以直接显示结果% run
- 前言:jieba是优秀的中文分词第三方库,由于中文文本之间每个汉字都是连续书写的,我们需要通过特定的手段来获得其中的每个词组,这种手段叫做分
- 指令和程序计算机的硬件系统通常由五大部件构成,包括:运算器、控制器、存储器、输入设备和输出设备。其中,运算器和控制器放在一起就是我们通常所说