La clase Qtimer de la biblioteca PYQT permite a los usuarios crear un reloj digital, contador de tiempo, barra de progreso y más. Esta clase se usa para crear un temporizador normal que envíe una señal cuando el temporizador se dispara y hereda desde el
Qobector clase. El objeto del
Qtimer La clase se crea como un niño de un widget. Cuando el widget se elimina, el objeto de temporizador también se elimina. El
Qtimer La clase proporciona una función estática llamada
un solo tiro() que se puede usar para llamar a una función después de un período específico. Este tutorial te muestra cómo usar el
Qtimer clase para crear aplicaciones PYQT relacionadas con el tiempo.
Uso de Qtimer
Las siguientes secciones proporcionan ejemplos que ilustran cómo implementar dos aplicaciones diferentes utilizando la clase Qtimer.
Ejemplo 1: crear un cronómetro
El siguiente script implementará una aplicación de cronómetro en Python utilizando la clase Qtimer. Esta aplicación contará el número de segundos y el número de minutos. Se utilizan dos botones para comenzar, detener, reanudar y restablecer el mostrador. Cuando el usuario hace clic en el Comenzar botón, el mostrador comenzará a contar y la leyenda del Comenzar El botón se cambiará a Detener. Cuando el usuario hace clic en el Comenzar botón con el subtítulo Detener, El mostrador se detendrá temporalmente y el subtítulo del Comenzar El botón se cambiará a Reanudar para continuar el mostrador a la próxima vez. Cuando el usuario hace clic en el Reiniciar botón, todos los valores del contador se inicializarán a 0.
# Importar módulos necesarios
Sys de importación
de pyqt5.QtWidgets Import *
de pyqt5.Qtcore import *
# Definir clase para crear el reloj de parada
Clase StopWatchWindow (QMainWindow):
def __init __ (self):
# Llame al constructor matriz
súper().__en eso__()
# Establecer el título de la ventana
ser.setWindowtitle ("Stop Watch usando Qtimer")
# Establezca la geometría para la ventana
ser.SetGeometry (100, 100, 300, 200)
# Establecer las variables necesarias
ser.contador = 0
ser.minuto = '00'
ser.segundo = '00'
ser.count = '00'
ser.startwatch = falso
# Crear etiqueta para mostrar el reloj
ser.etiqueta = qlabel (self)
# Establecer geometría para la etiqueta
ser.etiqueta.SetGeometry (100, 40, 150, 70)
# Crear botón Inicio
ser.inicio = qpushButton ("inicio", self)
# Establezca la geometría en el botón Inicio
ser.comenzar.SetGeometry (50, 120, 100, 40)
# Llame al método inicial () cuando se hace clic en el botón de inicio
ser.comenzar.presionado.conectar (yo.Comenzar)
# Crear botón de reinicio
resetwatch = qpushButton ("reset", self)
# Establezca la geometría en el botón Detener
RESETWATCH.SetGeometry (160, 120, 100, 40)
# Método de restablecimiento de llamada () Cuando se hace clic en el botón de reinicio
RESETWATCH.presionado.conectar (yo.Reiniciar)
# Crear objeto de temporizador
Temporizante = Qtimer (Self)
# Agregue un método con el temporizador
Temporizador.se acabó el tiempo.conectar (yo.showcounter)
# Método de llamada inicial () para modificar el valor del temporizador
Temporizador.Inicio (100)
# Mueva la posición de la ventana
ser.Mover (900, 400)
# Muestra la ventana
ser.espectáculo()
# Defina un método para modificar los valores de minutos y segundos en función del valor del temporizador
Def showcounter (yo):
# Verifique el valor de la variable StartWatch para iniciar o detener el reloj de parada
Si uno mismo.startwatch:
# Contador de incrementos por 1
ser.contador += 1
# Contar y establecer el valor del contador de tiempo
cnt = int ((yo mismo.contador/10 - int (yo.contador/10))*10)
ser.count = '0' + Str (CNT)
# Establecer el segundo valor
Si int (yo.contador/10) < 10 :
ser.segundo = '0' + str (int (self.contador / 10))
demás:
ser.segundo = str (int (self.contador / 10))
# Establecer el valor minuto
Si uno mismo.contador / 10 == 60.0:
ser.segundo == '00'
ser.contador = 0
min = int (yo.minuto) + 1
Si min < 10 :
ser.minuto = '0' + str (min)
demás:
ser.minuto = str (min)
# Fusionar los valores de menta, segundo y conteo
texto = yo.minuto + ':' + yo.segundo + ':' + yo.contar
# Muestra los valores de parto en la etiqueta
ser.etiqueta.setText ('
' + texto +'
')
# Definir método para manejar el botón Inicio
Def inicio (yo):
# Establezca el título del botón de inicio en función de la leyenda anterior
Si uno mismo.comenzar.text () == 'parar':
ser.comenzar.setText ('currículum')
ser.startwatch = falso
demás:
# Hacer que Startwatch sea verdadero
ser.startwatch = true
ser.comenzar.setText ('parar')
# Definir método para manejar el botón de reinicio
Def Restablecer (Self):
ser.startwatch = falso
# Restablecer todas las variables de contador
ser.contador = 0
ser.minuto = '00'
ser.segundo = '00'
ser.count = '00'
# Establezca los valores iniciales para el reloj de parada
ser.etiqueta.setText (str (self.encimera))
# Crear objeto de aplicación y ejecutar la aplicación
APP = QAPPLICATION (SYS.argv)
stopwt = stopWatchWindow ()
aplicación.exec ()
La siguiente ventana aparecerá después de ejecutar el script anterior.
El cronómetro comenzará a funcionar después de que el usuario haga clic en el Comenzar botón.
El contador dejará de contar después de que el usuario haga clic en el Detener botón.
Ejemplo 2: crear un reloj digital
El siguiente script implementará un reloj digital en Python utilizando el Qtimer clase. El script mostrará el reloj digital en una etiqueta leyendo la hora actual del sistema una vez cada segundo.
# Importar módulos necesarios
Sys de importación
de pyqt5.QtWidgets Import Qapplication, QWidget, Qlabel, QvboxLayout
de pyqt5.Qtcore import Qtimer, Qtime, Qt
de pyqt5.Qtgui import qfont
# Definir clase para crear el reloj digital
clase DigitalClock (QWidget):
def __init __ (self):
súper().__en eso__()
# Crear una etiqueta con fuente y alineación
ser.lbltimer = qlabel ()
fuente = Qfont ('Times', 50)
ser.lbltimer.setFont (fuente)
ser.lbltimer.Setalignment (QT.Alinear al centro)
# Crea el objeto de diseño vártico
v_layout = qvboxLayout ()
V_LAYOUT.addwidget (yo.lbltimer)
ser.setLayout (v_layout)
# Crear el objeto de temporizador y llamar a los métodos necesarios para mostrar el reloj
Temporizante = Qtimer (Self)
Temporizador.se acabó el tiempo.conectar (yo.Muestra el reloj)
Temporizador.Inicio (1000)
# Establecer el título de la ventana
ser.setwindowtitle ("reloj digital usando qtimer")
# Cambiar el tamaño de la ventana
ser.cambiar el tamaño (270, 120)
# Mueva la posición de la ventana
ser.Mover (800, 400)
# Método de llamada para mostrar la hora
ser.Muestra el reloj()
# Muestra la ventana
ser.espectáculo()
Def ShowClock (Self):
# Lea la hora actual
Current_time = qtime.tiempo actual()
# Muestra el reloj digital
ser.lbltimer.setText ('
' + Current_time.toString ('HH: MM: SS AP') + '
')
# Crear objeto de aplicación y ejecutar la aplicación
APP = QAPPLICATION (SYS.argv)
Win = DigitalClock ()
aplicación.exec ()
La siguiente ventana de salida aparecerá después de ejecutar el script anterior.
Conclusión
El valor de fecha y hora del tiempo actual se puede leer de varias maneras utilizando la clase QTIMER de la biblioteca PYQT. La clase Qtimer se utilizó en este tutorial para ejecutar varios scripts de tiempo de ejemplo.