En este artículo veremos cómo podemos crear una aplicación de temporizador en PyQt5. Un temporizador es un tipo especializado de reloj que se usa para medir intervalos de tiempo específicos, para el tiempo dado tenemos que disminuir el tiempo hasta que los tiempos se vuelvan cero, es decir, contar hacia abajo.
Pasos de implementación de GUI:
1. Cree un botón para abrir una ventana emergente para obtener la hora y establezca su geometría
2. Cree una etiqueta para mostrar la hora y el estado completo
3. Configure la geometría de la etiqueta, el tamaño de fuente y alinee su texto al centro
4. Cree tres botones para iniciar la temporizador, pausar el temporizador y restablecer el temporizador
5. Configure la geometría de cada botónPasos de implementación de back-end:
1. Cree una variable de conteo y una bandera para saber si el contador está detenido o en ejecución
2. Agregue una acción a cada botón
3. Dentro de la acción de obtener el segundo botón, obtenga el valor del segundo usando el cuadro de diálogo de entrada y haga que la bandera sea falsa
4. Dentro de la acción de inicio hacer que el indicador sea verdadero, pero si el conteo es cero, hacer que sea falso
5. Dentro de la acción de pausa, hacer que el indicador sea falso
6. Dentro de la acción de reinicio, hacer que el indicador sea falso, establecer el valor de conteo en cero y establecer el texto en la etiqueta
7. Crear un objeto de temporizador que llame a su método después de cada 100 milisegundos
8. Dentro de la acción del temporizador, verifique la bandera, luego disminuya el valor de conteo y configure el texto en la etiqueta
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 ") # setting geometry self.setGeometry(100, 100, 400, 600) # calling method self.UiComponents() # showing all the widgets self.show() # method for widgets def UiComponents(self): # variables # count variable self.count = 0 # start flag self.start = False # creating push button to get time in seconds button = QPushButton("Set time(s)", self) # setting geometry to the push button button.setGeometry(125, 100, 150, 50) # adding action to the button button.clicked.connect(self.get_seconds) # creating label to show the seconds self.label = QLabel("//TIMER//", self) # setting geometry of label self.label.setGeometry(100, 200, 200, 50) # setting border to the label self.label.setStyleSheet("border : 3px solid black") # setting font to the label self.label.setFont(QFont('Times', 15)) # setting alignment ot the label self.label.setAlignment(Qt.AlignCenter) # creating start button start_button = QPushButton("Start", self) # setting geometry to the button start_button.setGeometry(125, 350, 150, 40) # adding action to the button start_button.clicked.connect(self.start_action) # creating pause button pause_button = QPushButton("Pause", self) # setting geometry to the button pause_button.setGeometry(125, 400, 150, 40) # adding action to the button pause_button.clicked.connect(self.pause_action) # creating reset button reset_button = QPushButton("Reset", self) # setting geometry to the button reset_button.setGeometry(125, 450, 150, 40) # adding action to the button reset_button.clicked.connect(self.reset_action) # 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.start: # incrementing the counter self.count -= 1 # timer is completed if self.count == 0: # making flag false self.start = False # setting text to the label self.label.setText("Completed !!!! ") if self.start: # getting text from count text = str(self.count / 10) + " s" # showing text self.label.setText(text) # method called by the push button def get_seconds(self): # making flag false self.start = False # getting seconds and flag second, done = QInputDialog.getInt(self, 'Seconds', 'Enter Seconds:') # if flag is true if done: # changing the value of count self.count = second * 10 # setting text to the label self.label.setText(str(second)) def start_action(self): # making flag true self.start = True # count = 0 if self.count == 0: self.start = False def pause_action(self): # making flag false self.start = False def reset_action(self): # making flag false self.start = False # setting count value to 0 self.count = 0 # setting label text self.label.setText("//TIMER//") # 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