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

不論是日常的工作還是學習,現代年輕人在電腦屏幕時長數據能讓人驚掉下巴,繼而引發一系列身體不適的現象,為了時刻提醒自己起來活動活動,我開發了一款基於PythonGUI編程的

久坐提醒小助手

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

整體設計

整體的構思類似於一個番茄時鐘,提供一個倒計時功能並且在完成計時時發出警告。主要分為如下幾個模塊,一是時間選擇模塊,二是按鈕模塊,控制計時開始、暫停以及恢復,三是倒計時顯示模塊,並在倒計時完成之後發出警告。

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

模塊一

這一塊主要是組合框的設計,並傳遞所選擇時間的具體數值,非常簡單。

<code>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("<<comboboxselected>>", self.get_time)/<comboboxselected>/<code>

模塊二

這一塊主要是三個按鍵功能的設計,是軟件的核心部分。實現的功能與按鈕的名稱完全一致,當選擇了定時的時間,按下開始按鈕時,觸發倒計時的秒錶,並實時顯示;按下暫停之後需要暫停倒計時的計數;按下繼續之後需要繼續倒計時的計數。

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


其中倒計時的計算,我是通過利用獲取目標學習時長的數值加上當前時間計算得到最終計時完成的時間,本來是非常完美的,但是引入了暫停和繼續開始這兩項功能之後需要做出一定程度的改進,那就是倒計時的計算需要補充暫停的時長。

<code>    def alarm(self):

self.now=datetime.datetime.now()
delta=datetime.timedelta(minutes=self.minute)
self.target=self.now+delta
self.win.after(0,self.update)

def pause(self):

self.pause_time=datetime.datetime.now()
self.flag=True
self.win.after_cancel()
def go_on(self): self.go_on_now=datetime.datetime.now()
self.pause_long=self.go_on_now-self.pause_time+self.pause_long
self.flag=False
self.win.after(0,self.update)/<code>

模塊三

把這個倒計時顯示模塊放置於最醒目的位置,並在完成當前計時時發出警告的消息。核心便是下面的update函數,實現倒計時的實時更新。

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

<code>    def update(self):
now=datetime.datetime.now()
countdown=self.target-now+self.pause_long
self.label=tkinter.Label(self.win,text=str(countdown)[:7],font=("黑體",70))
self.label.place(x=60,y=130)
if str(countdown)[:7]=='0:00:00':
tkinter.messagebox.showwarning(title="FBIWarning",message="您已工作{}分鐘,請馬上離開座位休息片刻!".format(self.minute))
self.flag=True
self.win.after_cancel()
if self.flag==False:
self.win.after(1,self.update)/<code>


最後,希望大家在工作學習之中,經常站起來活動活動筋骨,放鬆放鬆大腦,多呼吸新鮮的空氣,畢竟身體才是革命的本錢!


分享到:


相關文章: