用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
- Android Wear計時器開發(2)Android
- Android Wear計時器開發(3)Android
- Android Wear計時器開發(1)Android
- Python--物件導向程式設計--時鐘例項開發Python物件程式設計
- 計時器的應用
- 倒數計時應用定製化開發
- python用time函式計算程式執行時間Python函式
- 直播平臺軟體開發,Android 計時器,定時功能Android
- 安卓快速開發框架(十)XBaseAndroid倒數計時,定時器安卓框架Android定時器
- python 實現計時器,統計執行時長Python
- 微信小程式開發—專案實戰之計算器開發微信小程式
- MFC開發(一)簡單同步時間應用程式
- Python開發asyncio非同步程式設計學習?python適合做什麼開發Python非同步程式設計
- unity+計時器,隨時開啟Unity
- 從零開始學Python:19課-使用PyCharm開發Python應用程式PythonPyCharm
- 微信開發之小程式實現倒數計時
- 常用的Python程式設計開發工具有哪些?Python程式設計
- python開發編譯器Python編譯
- 量化機器人開發/量化合約策略機器人系統開發及程式設計程式碼示例機器人程式設計
- 戲精程式設計師,用python開發了一個女朋友,天天秀恩愛程式設計師Python
- 用50行Python程式碼製作一個計算器Python
- kestrel網路程式設計--開發redis伺服器程式設計Redis伺服器
- Python程式設計有什麼特點?Python開發學習Python程式設計
- IPP SWAP孵化器算力挖礦系統開發/python技術程式設計Python程式設計
- 5款程式設計師常用的Python開發工具程式設計師Python
- Python併發程式設計Python程式設計
- .NET程式碼樹執行時間計時器
- 用設計模式開發通用資料庫操作器 (轉)設計模式資料庫
- 開發 SOA 應用程式
- 量化交易機器人開發程式碼丨量化機器人功能系統開發(python多語言)機器人Python
- 學習用 Python 程式設計時要避免的 3 個錯誤Python程式設計
- Python 程式設計實用技巧Python程式設計
- 小程式初探 —— 使用Taro開發BMI體質計算器
- 開始使用 Python 開發 Web 應用PythonWeb
- 蘋果計劃明年在印度開設iOS應用設計和開發加速器蘋果iOS
- 量化/合約跟單/系統程式設計開發/策略交易開發技術/Python程式語言程式設計Python
- Python常用的六款程式設計開發工具彙總!Python程式設計