当前位置: 首页 > 后端技术 > Python

用Python做一个久坐提醒小助手

时间:2023-03-26 16:08:31 Python

无论是日常工作还是学习,现代年轻人花在电脑屏幕上的时间数据都能让人惊掉下巴,进而引发一系列的身体不适。小李也是久坐一族的一员。为了时刻提醒自己起床走动,我开发了一个基于PythonGUI编程的久坐提醒助手。整体思路的整体设计类似于番茄钟,提供倒计时功能,并在计时完成时发出警告。主要分为以下几个模块,一是时间选择模块,二是按钮模块,控制计时开始、暂停和恢复,三是倒计时显示模块,倒计时结束后发出警告完成了。模块一主要是组合框的设计,传递选中时间的具体值,非常简单。label2=tkinter.Label(self.win,text='请选择时间间隔:').place(x=40,y=20)self.cv=tkinter.StringVar()self.com=ttk.Combobox(self.win,textvariable=self.cv)self.com.place(x=190,y=20)self.com['value']=("15分钟","30分钟","45分钟","60分钟")self.com.current(0)self.com.bind("<>",self.get_time)defget_time(self,event):self.minute=int(self.com.get()[:-2])模块二主要是三个按键功能的设计,是软件的核心部分。实现的功能与按钮的名称完全一致。选择定时时间并按下开始按钮时,倒数秒表将被实时触发并显示;按暂停后,倒计时需要暂停;按继续后,倒计时需要继续计数。其中,倒计时的计算,我是用目标学习时间加上当前时间的值来计算最终的计时完成时间。本来是很完美的,但是引入了pause和resume这两个功能之后,需要做一定程度的改进。改进,即倒计时的计算需要补充停顿的长度。button=tkinter.Button(self.win,text="start",command=self.alarm,width=6,height=1)button.place(x=40,y=60)button2=tkinter.Button(self.win,text="暂停",command=self.pause,width=6,height=1)button2.place(x=180,y=60)button3=tkinter.Button(self.win,text="继续",command=self.go_on,width=6,height=1)button3.place(x=320,y=60)defalarm(self):self.now=datetime.datetime.now()delta=datetime.timedelta(分钟=self.minute)self.target=self.now+deltaself.win.after(0,self.update)defpause(self):self.pause_time=datetime.datetime.now()self.flag=真实自我。win.after_cancel()defgo_on(self):self.go_on_now=datetime.datetime.now()self.pause_long=self.go_on_now-self.pause_time+self.pause_longself.flag=Falseself.win.after(0,self.update)模块三将这个倒计时显示模块放在最显眼的位置,当当前计时结束时发出警告信息。核心是下面的update函数,实现了倒计时的实时更新。defupdate(self):now=datetime.datetime.now()countdown=self.target-now+self.pause_longself.label=tkinter.Label(self.win,text=str(countdown)[:7],字体=("黑体",70))self.label.place(x=60,y=130)ifstr(countdown)[:7]=='0:00:00':tkinter.messagebox.showwarning(title="FBIWarning",message="你已经工作了{}分钟,请立即离开座位休息!".format(self.minute))self.flag=Trueself.win.after_cancel()ifself.flag==False:self.win.after(1,self.update)最后希望大家在工作学习中多站起来活动一下肌肉,放松一下大脑,多呼吸新鲜空气。毕竟,身体是革命的本钱!