Python | Crear un cronómetro usando el objeto de reloj en kivy

Kivy es una herramienta GUI independiente de la plataforma en Python. Como se puede ejecutar en Android, IOS, Linux y Windows, etc. Básicamente se usa para desarrollar la aplicación de Android, pero eso no significa que no se pueda usar en aplicaciones de escritorio.
En esto, vamos a ver cómo podemos crear un cronómetro usando una etiqueta. 
En el código, crearemos solo un contador usando la etiqueta en la que cuando configure el tiempo en segundos, comenzará a disminuir como una cuenta regresiva y en el segundo haremos lo mismo usando el objeto de reloj. 

 Tutorial de Kivy: aprenda Kivy con ejemplos .

Objeto de reloj: 

  1. Kivy proporciona objetos Clock.
  2. Se puede hacer que los objetos de reloj llamen a una función cuando haya transcurrido un período de tiempo específico.
  3. Un objeto de reloj en Kivy se puede configurar para llamar a una función cada vez que transcurre el tiempo o solo una vez.

Es bueno usar el módulo incorporado de kivy mientras se trabaja con el reloj: 
desde kivy.clock importar Reloj

Basic Approach:
1) import kivy
2) import kivyApp
3) import label
4) import Animation
5) Import clock
6) import kivy properties(only needed one)
7) Set minimum version(optional)
8) Create Label class
9) Create App class
10) return Layout/widget/Class(according to requirement)
11) Run an instance of the class

# Enfoque simple:

Python3

'''
Code of How to create countdown using label only
'''
   
# Program to Show how to create a switch
# import kivy module   
import kivy 
       
# base Class of your App inherits from the App class.   
# app:always refers to the instance of your application  
from kivy.app import App
     
# this restrict the kivy version i.e 
# below this kivy version you cannot 
# use the app or software 
kivy.require('1.9.0')
 
# The Label widget is for rendering text.
from kivy.uix.label import Label
 
# Animation is used to animate Widget properties
from kivy.animation import Animation
 
# The Properties classes are used when you create an EventDispatcher.
from kivy.properties import StringProperty, NumericProperty
 
 
# create a label class
class Clock(Label):
 
    # Set the numeric property
    # i.e set the counter number you can change it accordingly
    a = NumericProperty(100)  # seconds
 
    # To start countdown
    def start(self):
        Animation.cancel_all(self)  # stop any current animations
        self.anim = Animation(a = 0, duration = self.a)
 
        # TO finish count down
        def finish_callback(animation, clock):
            clock.text = "FINISHED"
 
        self.anim.bind(on_complete = finish_callback)
        self.anim.start(self)
 
    # If u remove this there will be nothing on screen
    def on_a(self, instance, value):
        self.text = str(round(value, 1))
 
         
# Create the App class
class TimeApp(App):
    def build(self):
        # Create the object of Clock class
        clock = Clock()
 
        # call the function from class Clock
        clock.start()
        return clock
 
# Run the App
if __name__ == "__main__":
    TimeApp().run()

Producción:

Nota: la cuenta regresiva comienza desde 100 y termina en 0

# Ahora usando el Objeto Reloj:

Python3

'''
Code of How to create countdown using label only
'''
   
# Program to Show how to create a switch
# import kivy module   
import kivy 
       
# base Class of your App inherits from the App class.   
# app:always refers to the instance of your application  
from kivy.app import App
     
# this restrict the kivy version i.e 
# below this kivy version you cannot 
# use the app or software 
kivy.require('1.9.0')
 
# The Label widget is for rendering text.
from kivy.uix.label import Label
 
# The Clock object allows you to schedule
# a function call in the future; once or
# repeatedly at specified intervals.
from kivy.clock import Clock
  
# The kivy App that extends from the App class
class ClockDemo(App):
 
    count = 0
 
    def build(self):
       self.myLabel = Label(text ='Waiting for updates...')
 
       # Start the clock
       Clock.schedule_interval(self.Callback_Clock, 1)
        
       return self.myLabel
 
    def Callback_Clock(self, dt):
        self.count = self.count + 1
        self.myLabel.text = "Updated % d...times"% self.count
 
        
# Run the app
if __name__ == '__main__':
    ClockDemo().run()

Producción:

Nota: Esto comienza desde 0 y se ejecuta hasta que corte la ventana 
 

Publicación traducida automáticamente

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