PythonのTkinterを使って目覚まし時計のGUIアプリを作る方法

スポンサーリンク

今日のチュートリアルでは、基本的なPython Tkinterのアラームクロックを開発します。

目覚まし時計は、私たちが眠っている間、短い昼寝をしている間、または私たちがいつも無知でいる仕事について私たちに思い出させるために、常に有用であることは不思議ではありません。

お勧めの読み物です。

スポンサーリンク

プロジェクトの紹介

このプロジェクトは、datetime と Tkinter という Python ライブラリを使用しています。

このプロジェクトは、現在の日付と時刻を利用し、見つかった現在の日付と時刻に応じてアラームを設定する機能を備えています。

Tkinterの目覚まし時計を作る

もう時間を無駄にしないために、今すぐプロジェクトの構築を始めましょう。

1. 必要なモジュールのインポート

プロジェクトをビルドする前に、まず、プロジェクトに必要なライブラリやモジュールをすべてインポートする必要があります。

1
2
3
4
from tkinter import *
import datetime
import time
import winsound

では、インポートした各モジュールについて説明します。

  1. Tkinterモジュール。1. Tkinter モジュール: ユーザーがアプリケーションを使用するためのウィンドウを作成するのに役立ちます。
  2. datetimeとtimeモジュール。2. datetime と time モジュール:日付と時刻を扱い、必要なときに操作するのに役立つ。
    winsoundモジュール。目覚まし時計用の音を生成するのに役立ちます。

2. 目覚まし用の関数を作成する

次のステップでは、目覚まし時計用の関数を作成します。

まずはそのためのコードを見てみましょう。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
def Alarm(set_alarm_timer):
    while True:
        time.sleep(1)
        actual_time = datetime.datetime.now()
        cur_time = actual_time.strftime("%H:%M:%S")
        cur_date = actual_time.strftime("%d/%m/%Y")
        msg="Current Time: "+str(cur_time)
        print(msg)
        if cur_time == set_alarm_timer:
            winsound.PlaySound("Music.wav",winsound.SND_ASYNC)
            break
 
def get_alarm_time():
    alarm_set_time = f"{hour.get()}:{min.get()}:{sec.get()}"
    Alarm(alarm_set_time)

Alarm`という名前の関数は、アプリケーションの主要な機能を扱います。

この関数は、ユーザーがウィンドウの入力ボックスで設定したアラーム時刻を引数として受け取ります。

sleep 関数は、ユーザが入力した時刻の値を取得するまでプログラムの実行を停止します。

次に、datetime.now関数を使って現在の日付と時刻を取得し、strftime関数の助けによって時刻と日付を別々の変数に格納します。

プログラムは、現在の時刻がユーザーによって設定されたアラーム時刻と一致するかどうかをチェックします。

条件が真であれば、winsoundモジュールを使って音を再生し、そうでなければタイマーを継続します。

新しい関数が定義されており、ユーザーの入力ボックスから入力を得て、それを前の関数に渡す。

3. Tkinter ウィンドウの作成

最後のステップは、すべてのウィジェットと機能を定義したアプリケーションのメインウィンドウを作成することです。

そのためのコードを以下に示します。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
window = Tk()
window.title("Alarm Clock")
window.geometry("400x160")
window.config(bg="#922B21")
window.resizable(width=False,height=False)
 
time_format=Label(window, text= "Remember to set time in 24 hour format!", fg="white",bg="#922B21",font=("Arial",15)).place(x=20,y=120)
 
addTime = Label(window,text = "Hour     Min     Sec",font=60,fg="white",bg="black").place(x = 210)
setYourAlarm = Label(window,text = "Set Time for Alarm: ",fg="white",bg="#922B21",relief = "solid",font=("Helevetica",15,"bold")).place(x=10, y=40)
 
hour = StringVar()
min = StringVar()
sec = StringVar()
 
hourTime= Entry(window,textvariable = hour,bg = "#48C9B0",width = 4,font=(20)).place(x=210,y=40)
minTime= Entry(window,textvariable = min,bg = "#48C9B0",width = 4,font=(20)).place(x=270,y=40)
secTime = Entry(window,textvariable = sec,bg = "#48C9B0",width = 4,font=(20)).place(x=330,y=40)
 
submit = Button(window,text = "Set Your Alarm",fg="Black",bg="#D4AC0D",width = 15,command = get_alarm_time,font=(20)).place(x =100,y=80)
 
window.mainloop()

Complete Code for Tkinter Alarm Clock

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
from tkinter import *
import datetime
import time
import winsound
 
def Alarm(set_alarm_timer):
    while True:
        time.sleep(1)
        actual_time = datetime.datetime.now()
        cur_time = actual_time.strftime("%H:%M:%S")
        cur_date = actual_time.strftime("%d/%m/%Y")
        msg="Current Time: "+str(cur_time)
        print(msg)
        if cur_time == set_alarm_timer:
            winsound.PlaySound("Music.wav",winsound.SND_ASYNC)
            break
 
def get_alarm_time():
    alarm_set_time = f"{hour.get()}:{min.get()}:{sec.get()}"
    Alarm(alarm_set_time)
 
window = Tk()
window.title("Alarm Clock")
window.geometry("400x160")
window.config(bg="#922B21")
window.resizable(width=False,height=False)
 
time_format=Label(window, text= "Remember to set time in 24 hour format!", fg="white",bg="#922B21",font=("Arial",15)).place(x=20,y=120)
addTime = Label(window,text = "Hour     Min     Sec",font=60,fg="white",bg="black").place(x = 210)
setYourAlarm = Label(window,text = "Set Time for Alarm: ",fg="white",bg="#922B21",relief = "solid",font=("Helevetica",15,"bold")).place(x=10, y=40)
 
hour = StringVar()
min = StringVar()
sec = StringVar()
 
hourTime= Entry(window,textvariable = hour,bg = "#48C9B0",width = 4,font=(20)).place(x=210,y=40)
minTime= Entry(window,textvariable = min,bg = "#48C9B0",width = 4,font=(20)).place(x=270,y=40)
secTime = Entry(window,textvariable = sec,bg = "#48C9B0",width = 4,font=(20)).place(x=330,y=40)
 
submit = Button(window,text = "Set Your Alarm",fg="Black",bg="#D4AC0D",width = 15,command = get_alarm_time,font=(20)).place(x =100,y=80)
 
window.mainloop()

サンプル出力

下のビデオは、アプリケーションの動作を示しています。

ウィンドウや変数はお好みでカスタマイズしてください。

まとめ

本日は、PythonのTkinterモジュールを使って、目覚まし時計を作る方法を学びました。

また、現在の日付と時刻を抽出し、特定の時刻に音を再生する方法についても学びました。

いかがでしたでしょうか?それでは、よい学習を

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