用Python開發計時器程式
首先,我們使用 Qt Designer 來設計計時器的圖形介面,參考如下:左邊畫三個按鈕,分別命名為:開始、暫停、清零。右邊畫一個標籤,文字內容為空。當然,你也可以直接匯入我提供的 Ui_timer.py 檔案,然後編寫其他部分程式碼。
QTimer 介紹
QTimer 類提供了一次性和可供重複使用的定時器。要使用這個介面,我們首先要建立一個 QTimer 物件,並將 timeout 訊號繫結到指定的函式上,接著呼叫QTimer 物件的 start 方法。這樣,定時器就會以你設定的時間間隔恆定地發出 timeout 訊號。
QTimer.start(ms) 方法,用於啟動或重啟計時器,ms 引數是時間間隔,單位是毫秒。QTimer.timeout.connect(method) 將定時器與方法繫結,當超過定時器設定的時間,就會呼叫該方法。
示例:
核心模組
下面是總體的程式碼結構,包括類的屬性及方法:
showTime 是之前提到的 QTimer.timeout.connect 函式所繫結的方法,只要定時器超時,就會呼叫這個函式。這個函式的作用是顯示計時器的時間。
計時器的時間公式:當前時間 - 初始時間 - 暫停時間,這裡關鍵的一步就是要計算暫停時間。所以,我們還需要兩個類屬性 self._pause_time 和 self._restart_time,分別表示暫停計時器那一刻的時間和再次啟動計時器那一刻的時間,兩個時間相減就得到總共暫停的時間。每當計時器暫停一次,self._pause_total 屬性就要加上新的暫停時間。
convert 函式,為自定義的函式,把得到的單位為秒的時間轉換成小時、分鐘和秒三個部分,並返回格式化的字串。int 充當向下取整的作用,注意這裡不能使用 round 或者 math.ceil 等向上取整的函式,否則會出現兩次 60 秒。
下面是三個按鈕分別繫結的函式。
開始按鈕繫結 startTimer 函式, self._current_time 相當於 time.time 也就是當前時間。如果第一次啟動或者清零後的啟動,就要初始化計時器啟動時間 self._start_time。如果是暫停後的啟動,就要更新 計時器重啟時間 self._restart_time。之後,設定按鈕的狀態。
暫停按鈕繫結 pauseTimer 函式。這個函式主要負責更新self._pause_flag,並記錄暫停計時器這一刻的時間,並停止向定時器傳送訊號。也就說,這時就不再執行函式 showTime。最後,設定按鈕狀態。
清零按鈕負責恢復至初始狀態。
樣式設定
成品展示:
將 label 設定為黑底白字, 字型大小為: 50px,加粗。
設定按鈕狀態,pushButton.setEnabled(boolen) 設定按鈕是否可以點選,預設清零按鈕不可點選。* 表示僅限關鍵字引數,必須通過關鍵字傳參,不能通過位置引數傳參。
初始化設定:
最後,我們可以使用 pyinstaller -w -i timer.ico First_window.py 命令生成 exe 檔案。
相關文章
- 用Python開發實用程式 – 計算器Python
- Python開發asyncio非同步程式設計學習?python適合做什麼開發Python非同步程式設計
- 計時器的應用
- 從零開始學Python:19課-使用PyCharm開發Python應用程式PythonPyCharm
- python 實現計時器,統計執行時長Python
- 倒數計時應用定製化開發
- 常用的Python程式設計開發工具有哪些?Python程式設計
- 直播平臺軟體開發,Android 計時器,定時功能Android
- Python程式設計有什麼特點?Python開發學習Python程式設計
- Python併發程式設計Python程式設計
- MFC開發(一)簡單同步時間應用程式
- Python 程式設計實用技巧Python程式設計
- 安卓快速開發框架(十)XBaseAndroid倒數計時,定時器安卓框架Android定時器
- 5款程式設計師常用的Python開發工具程式設計師Python
- 用 150 行 Python 程式碼寫的量子計算模擬器Python
- IPP SWAP孵化器算力挖礦系統開發/python技術程式設計Python程式設計
- unity+計時器,隨時開啟Unity
- 戲精程式設計師,用python開發了一個女朋友,天天秀恩愛程式設計師Python
- ??Java開發者的Python快速進修指南:網路程式設計及併發程式設計JavaPython程式設計
- 量化機器人開發/量化合約策略機器人系統開發及程式設計程式碼示例機器人程式設計
- Python 超程式設計 - 裝飾器Python程式設計
- Python:對程式做效能分析及計時統計Python
- python-併發程式設計Python程式設計
- kestrel網路程式設計--開發redis伺服器程式設計Redis伺服器
- python程式計算執行時間差Python
- Python常用的六款程式設計開發工具彙總!Python程式設計
- 微信開發之小程式實現倒數計時
- 開啟全民程式設計時代!Python小學生都要學的程式語言!程式設計Python
- 量化/合約跟單/系統程式設計開發/策略交易開發技術/Python程式語言程式設計Python
- 量化交易機器人開發程式碼丨量化機器人功能系統開發(python多語言)機器人Python
- Python程式碼編輯器和整合開發環境有哪些?Python開發環境
- Python開發Windows桌面應用程式(三)應用程式打包成exeWindows可執行檔案PythonWindows
- python開發小程式流程如何?Python
- 轉行能學Python開發嗎 怎麼能學好Python程式設計Python程式設計
- 這8個工具,用來做python應用程式開發太合適了!Python
- Python併發程式設計系列之多程式(multiprocessing)Python程式設計
- javafx開發計算器Java
- 量化合約交易策略機器人系統開發程式設計專案(Python技術版)機器人程式設計Python