欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

用Python做一個久坐提醒小助手的示例代碼

 更新時間:2020年02月10日 08:32:12   作者:https://segmentfault.com/a/1190000021713139  
這篇文章主要介紹了用Python做一個久坐提醒小助手的示例代碼,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧

不論是日常的工作還是學(xué)習(xí),現(xiàn)代年輕人在電腦屏幕時長數(shù)據(jù)能讓人驚掉下巴,繼而引發(fā)一系列身體不適的現(xiàn)象。小李也是久坐族中的一員,為了時刻提醒自己起來活動活動,我開發(fā)了一款基于PythonGUI編程的久坐提醒小助手。

整體設(shè)計

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

模塊一

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

    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)
        
  def get_time(self,event):

    self.minute=int(self.com.get()[:-2])

模塊二

這一塊主要是三個按鍵功能的設(shè)計,是軟件的核心部分。實現(xiàn)的功能與按鈕的名稱完全一致,當(dāng)選擇了定時的時間,按下開始按鈕時,觸發(fā)倒計時的秒表,并實時顯示;按下暫停之后需要暫停倒計時的計數(shù);按下繼續(xù)之后需要繼續(xù)倒計時的計數(shù)。

其中倒計時的計算,我是通過利用獲取目標(biāo)學(xué)習(xí)時長的數(shù)值加上當(dāng)前時間計算得到最終計時完成的時間,本來是非常完美的,但是引入了暫停和繼續(xù)開始這兩項功能之后需要做出一定程度的改進(jìn),那就是倒計時的計算需要補充暫停的時長。

    button=tkinter.Button(self.win,text="開始",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="繼續(xù)",command=self.go_on,width=6,height=1)
    button3.place(x=320,y=60) 
        
  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)

模塊三

把這個倒計時顯示模塊放置于最醒目的位置,并在完成當(dāng)前計時時發(fā)出警告的消息。核心便是下面的update函數(shù),實現(xiàn)倒計時的實時更新。

  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)

最后,希望大家在工作學(xué)習(xí)之中,經(jīng)常站起來活動活動筋骨,放松放松大腦,多呼吸新鮮的空氣,畢竟身體才是革命的本錢!

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

最新評論