Skip to main content

How to make a alarm clock in python | Alarm clock in python GUI

 Alarm Clock

Well as a student we need the alarm clock most. We have already our mobile phones to set our alarm.But think like a coder we can make it by our own and can customize it and it is very fun.So open your ide and start building this amazing project. Just enjoy your code.

Required Module

from tkinter import *  
import datetime
import time
import winsound

Make the main function for the alarm

def alarm():
    while True:
        set_time = f"{hours.get()}{minute.get()}{seconds.get()}"
        time.sleep(1)
        current_time = datetime.datetime.now().strftime("%H:%M:%S")
        if set_time == current_time:
            print("get up")
            winsound.PlaySound("sound.wav",winsound.SND_ASYNC)
        else:
            break


Create the root for tkinter use

root = Tk()
root.geometry("500x400")
root.title("Alarm clock in python")
root.config(bg='light blue')

Create the label to ask user for input

l1 = Label(roottext="Alarm clock",font="comicsansms 30 bold",fg='green')
l1.pack(pady=20)
l2 = Label(roottext="Set your time"fg="red",font="comicsansms 15 bold" )
l2.pack()

Make a frame and create a tuple for hours

# make a frame
f1 = Frame(root)
f1.pack()

# set the hour time
hours = StringVar(root)
hour =("00""01""02""03""04""05""06""07""08""09""10""11""12""13""14""15""16""17""18""19""20""21""23""24")
opt_hour = OptionMenu(f1hours, *hour).pack(side=LEFT)
hours.set(hour[0])

Set the minute time

minute = StringVar(root)
min = ('00''01''02''03''04''05''06''07',
           '08''09''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''43''44''45''46''47',
           '48''49''50''51''52''53''54''55',
           '56''57''58''59''60')
opt_min = OptionMenu(f1minute, *min).pack(side=LEFT)
minute.set(min[0])

Set the time for secon

seconds = StringVar(root)
second = ('00''01''02''03''04''05''06''07',
           '08''09''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''43''44''45''46''47',
           '48''49''50''51''52''53''54''55',
           '56''57''58''59''60')
opt_sec = OptionMenu(f1seconds, *second).pack(side=LEFT)
seconds.set(second[0])


Now combined all together


from tkinter import *  
import datetime
import time
import winsound


def alarm():
    while True:
        set_time = f"{hours.get()}{minute.get()}{seconds.get()}"
        time.sleep(1)
        current_time = datetime.datetime.now().strftime("%H:%M:%S")
        if set_time == current_time:
            print("get up")
            winsound.PlaySound("sound.wav",winsound.SND_ASYNC)
        else:
            break
        



root = Tk()
root.geometry("500x400")
root.title("Alarm clock in python")
root.config(bg='light blue')

# A label ask user to set the time
l1 = Label(roottext="Alarm clock",font="comicsansms 30 bold",fg='green')
l1.pack(pady=20)
l2 = Label(roottext="Set your time"fg="red",font="comicsansms 15 bold" )
l2.pack()

# make a frame
f1 = Frame(root)
f1.pack()

# set the hour time
hours = StringVar(root)
hour =("00""01""02""03""04""05""06""07""08""09""10""11""12""13""14""15""16""17""18""19""20""21""23""24")
opt_hour = OptionMenu(f1hours, *hour).pack(side=LEFT)
hours.set(hour[0])

# set the minute time
minute = StringVar(root)
min = ('00''01''02''03''04''05''06''07',
           '08''09''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''43''44''45''46''47',
           '48''49''50''51''52''53''54''55',
           '56''57''58''59''60')
opt_min = OptionMenu(f1minute, *min).pack(side=LEFT)
minute.set(min[0])

# set time for second
seconds = StringVar(root)
second = ('00''01''02''03''04''05''06''07',
           '08''09''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''43''44''45''46''47',
           '48''49''50''51''52''53''54''55',
           '56''57''58''59''60')
opt_sec = OptionMenu(f1seconds, *second).pack(side=LEFT)
seconds.set(second[0])
Button(roottext="Set Alarm"font="comicsansms 20 bold"command=alarm).pack()




root.mainloop()

Thankyou for your time hope you find it usefull and you enjoyed in this project🙏



See the result in 


Comments