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