PyQt5 – Cronómetro digital

En este artículo veremos cómo podemos crear un cronómetro usando la GUI de Python – PyQt5.
Un cronómetro es un reloj de mano diseñado para medir la cantidad de tiempo que transcurre entre su activación y desactivación. Una versión digital grande de un cronómetro diseñado para ver a distancia, como en un estadio deportivo, se llama Stopclock.

Pasos para crear un cronómetro –

1. Cree un contador que signifique los segundos
2. Cree una bandera para saber cuándo comenzar y cuándo hacer una pausa, configúrelo en Falso
3. Cree una etiqueta para mostrar los segundos
4. Cree tres botones para iniciar el cronómetro, pausar el cronómetro y para reajustar el cronómetro
5. Agregue acción a cada botón.
6. Dentro de la acción del botón de inicio, haga que el indicador sea verdadero
7. Dentro de la acción del botón de pausa, haga que el indicador sea falso
8. Dentro de la acción del botón de reinicio, haga que el indicador sea falso y que el valor del contador sea 0
9. Cree el objeto QTimer que llama a un método después cada 100 milisegundos, es decir, la décima parte del segundo
10. Dentro del método del objeto QTimer, verifique el estado de la bandera si es cierto, incremente el contador
11. Muestre el valor del contador a través de la etiqueta usando el método setText.

A continuación se muestra la implementación:

# importing libraries
from PyQt5.QtWidgets import * 
from PyQt5 import QtCore, QtGui
from PyQt5.QtGui import * 
from PyQt5.QtCore import * 
import sys
  
  
class Window(QMainWindow):
  
    def __init__(self):
        super().__init__()
  
        # setting title
        self.setWindowTitle("Python Stop watch")
  
        # setting geometry
        self.setGeometry(100, 100, 400, 500)
  
        # calling method
        self.UiComponents()
  
        # showing all the widgets
        self.show()
  
    # method for widgets
    def UiComponents(self):
  
        # counter
        self.count = 0
  
        # creating flag
        self.flag = False
  
        # creating a label to show the time
        self.label = QLabel(self)
  
        # setting geometry of label
        self.label.setGeometry(75, 100, 250, 70)
  
        # adding border to the label
        self.label.setStyleSheet("border : 4px solid black;")
  
        # setting text to the label
        self.label.setText(str(self.count))
  
        # setting font to the label
        self.label.setFont(QFont('Arial', 25))
  
        # setting alignment to the text of label
        self.label.setAlignment(Qt.AlignCenter)
  
        # creating start button
        start = QPushButton("Start", self)
  
        # setting geometry to the button
        start.setGeometry(125, 250, 150, 40)
  
        # add action to the method
        start.pressed.connect(self.Start)
  
        # creating pause button
        pause = QPushButton("Pause", self)
  
        # setting geometry to the button
        pause.setGeometry(125, 300, 150, 40)
  
        # add action to the method
        pause.pressed.connect(self.Pause)
  
        # creating reset button
        re_set = QPushButton("Re-set", self)
  
        # setting geometry to the button
        re_set.setGeometry(125, 350, 150, 40)
  
        # add action to the method
        re_set.pressed.connect(self.Re_set)
  
        # creating a timer object
        timer = QTimer(self)
  
        # adding action to timer
        timer.timeout.connect(self.showTime)
  
        # update the timer every tenth second
        timer.start(100)
  
    # method called by timer
    def showTime(self):
  
        # checking if flag is true
        if self.flag:
  
            # incrementing the counter
            self.count+= 1
  
        # getting text from count
        text = str(self.count / 10)
  
        # showing text
        self.label.setText(text)
  
  
    def Start(self):
  
        # making flag to true
        self.flag = True
  
    def Pause(self):
  
        # making flag to False
        self.flag = False
  
    def Re_set(self):
  
        # making flag to false
        self.flag = False
  
        # reseeting the count
        self.count = 0
  
        # setting text to label
        self.label.setText(str(self.count))
  
  
# create pyqt5 app
App = QApplication(sys.argv)
  
# create the instance of our Window
window = Window()
  
# start the app
sys.exit(App.exec())

Producción :

Publicación traducida automáticamente

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