ストップウォッチをGUIで作る

プロンプト:PythonでストップウォッチをTkinterで作ってみて

Pythonのtkinterモジュールを使用して、簡単なストップウォッチアプリケーションを作成する手順を紹介します。以下のコードは、スタート、ストップ、およびリセット機能を備えたシンプルなストップウォッチです。

import tkinter as tk

class Stopwatch:
    def __init__(self, root):
        self.root = root
        self.root.title("Stopwatch")
        self.root.geometry("300x150")
        
        self.running = False
        self.time = 0

        self.label = tk.Label(root, text="00:00:00", font=("Helvetica", 48))
        self.label.pack()

        self.start_button = tk.Button(root, text="Start", command=self.start)
        self.start_button.pack(side=tk.LEFT, padx=5)

        self.stop_button = tk.Button(root, text="Stop", command=self.stop)
        self.stop_button.pack(side=tk.LEFT, padx=5)

        self.reset_button = tk.Button(root, text="Reset", command=self.reset)
        self.reset_button.pack(side=tk.LEFT, padx=5)

    def update(self):
        if self.running:
            self.time += 1
            minutes, seconds = divmod(self.time, 60)
            hours, minutes = divmod(minutes, 60)
            self.label.config(text=f"{hours:02}:{minutes:02}:{seconds:02}")
            self.root.after(1000, self.update)

    def start(self):
        if not self.running:
            self.running = True  # ここを修正
            self.update()

    def stop(self):
        if self.running:
            self.running = False

    def reset(self):
        self.stop()
        self.time = 0
        self.label.config(text="00:00:00")

if __name__ == "__main__":
    root = tk.Tk()
    stopwatch = Stopwatch(root)
    root.mainloop()

このプログラムは、tkinterを使ってGUIを作成し、ストップウォッチの機能を提供します。Startボタンを押すとストップウォッチが動き始め、Stopボタンを押すと止まり、Resetボタンを押すとリセットされます。

手順は次のとおりです:

  1. tkinterモジュールをインポートします。
  2. Stopwatchクラスを定義します。このクラスは、ストップウォッチの動作を制御します。
  3. __init__メソッドでウィンドウの設定とウィジェット(ラベルとボタン)を作成します。
  4. updateメソッドで時間を更新し、ラベルに表示します。
  5. startstopresetメソッドでストップウォッチを制御します。
  6. メインプログラムで、tk.Tk()を使ってルートウィンドウを作成し、Stopwatchクラスをインスタンス化してループを開始します。

このコードを実行すると、シンプルなストップウォッチアプリケーションが表示されます。

コメント

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