Crear un despertador usando Tkinter

Requisito previo: GUI de Python: tkinter , winsound, time y datetime .

Como todos sabemos, hoy en día despertarse a tiempo es una tarea muy difícil. La solución es el despertador. En este artículo, aprenderemos cómo crear un despertador usando Tkinter en Python. Sin alarmas, varias personas se quedarían dormidas y llegarían tarde al trabajo. Los despertadores también pueden ser útiles para mantener los horarios de sueño regulares.

  • Tkinter: Python ofrece múltiples opciones para desarrollar una GUI (interfaz gráfica de usuario). De todas las estrategias de GUI, tkinter es la técnica más utilizada. Es una interfaz habitual de Python para el kit de herramientas Tk GUI que se envía con Python.
  • Winsound: el módulo winsound brinda acceso a la maquinaria esencial de reproducción de sonido proporcionada por las plataformas Windows. Incluye funciones y una serie de otras constantes. Pite el altavoz de la PC.
  • tiempo: el módulo de tiempo en Python proporciona diversas funciones relacionadas con el tiempo. Este módulo viene con los módulos normales de Python.
  • datetime: el enfoque principal de datetime es simplificar el acceso a los atributos de la cosa asociada con fechas, horas y zonas horarias.

A continuación se muestra el aspecto de la GUI:

Entendamos la implementación paso a paso:

Paso 1: importar la biblioteca requerida

Python3

# Import Required Library
from tkinter import *
import datetime
import time
import winsound

Paso 2: agregue botones, etiquetas, marcos y menús de opciones

Sintaxis:

# Botón

Botón (Nombre del objeto, texto = «Introducir texto», ** atributo)

# Etiqueta

Etiqueta (Nombre del objeto, texto = «Ingresar texto», comando = «Ingresar comando», ** atributo)

# Cuadro

Marco (Nombre de objeto, ** atributo)

# Menú de opciones

OptionMenu(“Nombre de objeto”, “Tipo de datos”, “lista de valores en forma de tupla”, **attr)

Crearemos un menú de tres opciones:-

  • Horas (00–24)
  • Minutos (00–60)
  • Segundos (00–60)

La hora está en formato de 24 horas.

Paso 3: Cree una función llamada alarm() , que realice el trabajo de despertador.

Python3

def alarm():
    # Infinite Loop
    while True:
        # Set Alarm
        set_alarm = f"{hour.get()}:{minute.get()}:{second.get()}"
 
        # Wait for one seconds
        time.sleep(1)
 
        # Get current time
        current_time = datetime.datetime.now().strftime("%H:%M:%S")
 
        # Check whether set alarm is equal to current time or not
        if current_time == set_alarm:
            print("Time to Wake up")
            # Playing sound
            winsound.PlaySound("sound.wav",winsound.SND_ASYNC)

A continuación se muestra la implementación completa:

  • Hacer bucle infinito
  • Obtenga el valor de horas, minutos y segundos del usuario
  • Espere un segundo usando el módulo de tiempo
  • Obtenga la hora actual usando el módulo de fecha y hora
  • Compruebe si la hora actual es igual a la hora establecida; reproducir sonido usando el módulo winsound

Python3

# Import Required Library
from tkinter import *
import datetime
import time
import winsound
from threading import *
 
# Create Object
root = Tk()
 
# Set geometry
root.geometry("400x200")
 
# Use Threading
def Threading():
    t1=Thread(target=alarm)
    t1.start()
 
def alarm():
    # Infinite Loop
    while True:
        # Set Alarm
        set_alarm_time = f"{hour.get()}:{minute.get()}:{second.get()}"
 
        # Wait for one seconds
        time.sleep(1)
 
        # Get current time
        current_time = datetime.datetime.now().strftime("%H:%M:%S")
        print(current_time,set_alarm_time)
 
        # Check whether set alarm is equal to current time or not
        if current_time == set_alarm_time:
            print("Time to Wake up")
            # Playing sound
            winsound.PlaySound("sound.wav",winsound.SND_ASYNC)
 
# Add Labels, Frame, Button, Optionmenus
Label(root,text="Alarm Clock",font=("Helvetica 20 bold"),fg="red").pack(pady=10)
Label(root,text="Set Time",font=("Helvetica 15 bold")).pack()
 
frame = Frame(root)
frame.pack()
 
hour = StringVar(root)
hours = ('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'
        )
hour.set(hours[0])
 
hrs = OptionMenu(frame, hour, *hours)
hrs.pack(side=LEFT)
 
minute = StringVar(root)
minutes = ('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')
minute.set(minutes[0])
 
mins = OptionMenu(frame, minute, *minutes)
mins.pack(side=LEFT)
 
second = StringVar(root)
seconds = ('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')
second.set(seconds[0])
 
secs = OptionMenu(frame, second, *seconds)
secs.pack(side=LEFT)
 
Button(root,text="Set Alarm",font=("Helvetica 15"),command=Threading).pack(pady=20)
 
# Execute Tkinter
root.mainloop()

Producción:

Publicación traducida automáticamente

Artículo escrito por abhigoya y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *