Python

PythonでTkinerを使ってTimerを作ってみる【その4】

Python

第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コード

以下に保管してますので参考にどうぞ

GitHub - gogoloon/python-timer at Lesson#4
Contribute to gogoloon/python-timer development by creating an account on GitHub.

Pythonのオススメ勉強方法

私がオススメするPython初心者向けの最初に購入すべき書籍は「シリコンバレー一流プログラマーが教える Pythonプロフェッショナル大全です。

シリコンバレー一流プログラマーが教える Pythonプロフェッショナル大全

この書籍は実際にシリコンバレーの一流エンジニアとして活躍している酒井潤さんが書いた本です。

内容も初心者から上級者までまとめられており、各Lessonも長すぎずに分かりやすくまとめられているので、初心者の方にもおすすめです。

シリコンバレー一流プログラマーが教える Pythonプロフェッショナル大全

今回は以上となります。

コメント

タイトルとURLをコピーしました