Aplicación de reloj con Kivy usando Python

En este artículo, vamos a ver cómo desarrollar una aplicación de reloj con Kivy usando Python.

Kivy es una biblioteca Python de fuente abierta de interfaz gráfica de usuario que le permite desarrollar aplicaciones multiplataforma en Windows, macOS, Android, iOS, Linux y Raspberry-Pi. Además de las entradas habituales del mouse y el teclado, también admite eventos multitáctiles. 

Usaremos el módulo de tiempo para obtener la hora actual y actualizarla cada segundo. Además, también mostraremos dos horas de diferentes zonas horarias.

Funciones utilizadas

  • asctime(): Por defecto obtiene la hora local. También puede pasar la zona horaria para obtener la hora de otra zona como se hizo en el Ejemplo 2.
  • BoxLayout(): Se utiliza para organizar diseños en cajas verticales u horizontales.
  • schedule_interval(): se utiliza para crear intervalos de tiempo y recuerda la función/evento.
  • add_widget(): Agrega un widget a la pantalla.

Ejemplo 1: aplicación de hora local usando kivy

Python3

# importing modules
 
# it will allow us to get time
import time
 
# The App class is the base for
# creating Kivy applications
from kivy.app import App
 
# it will allow us to make interval calls
from kivy.clock import Clock
 
# Label widget will be used to render text
from kivymd.uix.label import Label
 
# we will be using this to resize app window
from kivy.core.window import Window
 
# it will allow us to create layouts
from kivy.uix.boxlayout import BoxLayout
# declaring window size
Window.size = (400, 700)
 
# clock class
class myclock(Label):
    def update(self, *args):
       
          # get the current local time
        self.text = time.asctime() 
 
# App class
class TimeApp(App):
 
    def build(self):
        layout = BoxLayout(orientation='vertical')
         
        # it will create vertical layouts in app
 
        # calling clock class for time
        clock1 = myclock() 
         
        # updates time with the interval of 1 sec
        Clock.schedule_interval(clock1.update, 1)
         
        # adding layout to the screen
        layout.add_widget(clock1) 
         
        # adding text to screen
        layout.add_widget(Label(text='INDIA')) 
 
        return layout
 
root = TimeApp()
root.run()  # running the app

Producción:

Ejemplo 2: agregar otra zona horaria en la aplicación de tiempo

Cree otra clase de reloj y agregue un diseño adicional para la clase de reloj 2 en la aplicación.

Python3

import time
 
from kivy.app import App
from kivy.clock import Clock
from kivymd.uix.label import Label
from kivy.core.window import Window
from kivy.uix.boxlayout import BoxLayout
 
Window.size = (400, 700)
 
class myclock(Label):
    def update(self, *args):
        self.text = time.asctime()
 
class myclock2(Label):
    def update(self, *args):
        t = time.gmtime()
        self.text = time.asctime(t)
 
class TimeApp(App):
 
    def build(self):
        layout = BoxLayout(orientation='vertical')
 
        clock1 = myclock()
        Clock.schedule_interval(clock1.update, 1)
        layout.add_widget(clock1)
        layout.add_widget(Label(text='INDIA'))
 
        clock2 = myclock2()
        Clock.schedule_interval(clock2.update, 1)
        layout.add_widget(clock2)
        layout.add_widget(Label(text='LONDON'))
 
        return layout
 
root = TimeApp()
root.run()

Producción:

Publicación traducida automáticamente

Artículo escrito por vinamrayadav 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 *