第1回:https://syachiku.net/python-timer1/
第2回:https://syachiku.net/python-timer2/
第3回:https://syachiku.net/python-timer3/
第4回:https://syachiku.net/python-timer4/ <-今回
第5回:https://syachiku.net/python-timer5/
前回(第3回)の続きになります。
今回はタイマー0秒になって終了した際の動きを実装します。
4-1. タイマー終了時のアクションを設定する
タイマー終了時にポップアップメッセージを表示します。
ポップアップを行うために、Tkinerに含まれているmessageboxを利用します。
まずは、タイマーが終了したことを判別するための処理を追加します。残り時間の「__remain_min」と「__remain_sec」がどちらも0になった時に終了となるように処理を追加しています。
import tkinter as tk
import tkinter.messagebox as messagebox
(省略)
def exec_timer(self):
if not self.__start_status:
if int(self.__remain_min.get()) == 0 and int(self.__remain_sec.get()) == 0:
self.__start_status = True
self.__text_start_stop_button.set("Start")
messagebox.showinfo("timer", "タイマーが終了しました!!")
else:
__tmp_time_min = int(self.__remain_min.get())
__tmp_time_sec = int(self.__remain_sec.get())
if __tmp_time_min >= 0:
__tmp_time_sec -= 1
self.__remain_sec.set(str(__tmp_time_sec))
if __tmp_time_sec == -1:
__tmp_time_min -= 1
self.__remain_min.set(str(__tmp_time_min))
self.__remain_sec.set("59")
self.__frame.after(1000, self.exec_timer)
タイマーの時間を短めに設定して、実行するとポップアップが表示されます。
合わせて、ボタンのステータスとラベルを戻すようにするのを忘れないでください。
まとめ
今回はかなりあっさりと実装することができました。残りは推定終了時刻の表示だけになりますね。
Timerで設定できるのは「分」と「秒」とし、それぞれがフォーム入力可能とする(第1回)ボタンは1つとして、開いたタイミングでは「Start」を表示(第1回)「Start」ボタンをクリックするとタイマーが開始され、1秒単位でカウントダウンする(第2回)0秒になったらアラートのポップアップメッセージを表示する(今回はTkinerのmesageboxで実装する)「Start」ボタンを押したらタイマーが開始され、ボタンが「Stop」の表示に切り替わる(第3回)Stopを押したらタイマーが停止する(第3回)残り時間として「分」と「秒」を表示する(第3回)- 上と共に「推定での終わる時刻」を表示する。M/D hh:mm:ss形式とする
- 「推定での終わる時刻」は1分で随時更新される
つぎで最後になります。最後に残っている推定終了時刻の部分を完成させます。
第4回終了時のGithubコード
以下に保管してますので参考にどうぞ
Pythonのオススメ勉強方法
私がオススメするPython初心者向けの最初に購入すべき書籍は「シリコンバレー一流プログラマーが教える Pythonプロフェッショナル大全」です。
シリコンバレー一流プログラマーが教える Pythonプロフェッショナル大全
この書籍は実際にシリコンバレーの一流エンジニアとして活躍している酒井潤さんが書いた本です。
内容も初心者から上級者までまとめられており、各Lessonも長すぎずに分かりやすくまとめられているので、初心者の方にもおすすめです。
シリコンバレー一流プログラマーが教える Pythonプロフェッショナル大全
今回は以上となります。
コメント