Pitón

Cómo utilizar PyQt QTimer

Cómo utilizar PyQt QTimer
La clase QTimer de la biblioteca PyQt permite a los usuarios crear un reloj digital, un contador de tiempo, una barra de progreso y más. Esta clase se utiliza para crear un temporizador regular que envía una señal cuando el temporizador se activa y hereda del QObject clase. El objeto de la QTimer la clase se crea como un elemento secundario de un widget. Cuando se elimina el widget, el objeto del temporizador también elimina. La 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 le 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 usando la clase QTimer. Esta aplicación contará la cantidad de segundos y la cantidad de minutos. Se utilizan dos botones para iniciar, detener, reanudar y restablecer el contador. Cuando el usuario hace clic en el Comienzo , el contador comenzará a contar y el título del Comienzo el botón se cambiará a Detener. Cuando el usuario hace clic en el Comienzo botón con la leyenda Detener, el contador se detendrá temporalmente, y el título del Comienzo el botón se cambiará a Reanudar para continuar el contador hasta 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
importar sys
de PyQt5.Importación de QtWidgets *
de PyQt5.Importación QtCore *
# Definir clase para crear el cronómetro
clase StopWatchWindow (QMainWindow):
def __init __ (yo):
# Llamar al constructor padre
súper().__en eso__()
# Establecer el título de la ventana
uno mismo.setWindowTitle ("Cronómetro con QTimer")
# Establecer la geometría de la ventana
uno mismo.setGeometry (100, 100, 300, 200)
# Establecer las variables necesarias
uno mismo.contador = 0
uno mismo.minuto = '00'
uno mismo.segundo = '00'
uno mismo.cuenta = '00'
uno mismo.startWatch = Falso
# Crear etiqueta para mostrar el reloj
uno mismo.etiqueta = QLabel (yo)
# Establecer geometría para la etiqueta
uno mismo.etiqueta.setGeometry (100, 40, 150, 70)
# Crear botón de inicio
uno mismo.start = QPushButton ("Inicio", self)
# Establecer geometría en el botón de inicio
uno mismo.comienzo.setGeometry (50, 120, 100, 40)
# Llamar al método start () cuando se hace clic en el botón de inicio
uno mismo.comienzo.presionado.conectar (uno mismo.Comienzo)
# Crear botón de reinicio
resetWatch = QPushButton ("Reset", uno mismo)
# Establecer geometría en el botón de parada
resetWatch.setGeometry (160, 120, 100, 40)
# Llamar al método reset () cuando se hace clic en el botón de reinicio
resetWatch.presionado.conectar (uno mismo.Reiniciar)
# Crear objeto de temporizador
timer = QTimer (auto)
# Agrega un método con el temporizador
Temporizador.se acabó el tiempo.conectar (uno mismo.showCounter)
# Llame al método start () para modificar el valor del temporizador
Temporizador.inicio (100)
# Mover la posición de la ventana
uno mismo.mover (900, 400)
# Mostrar la ventana
uno mismo.show()
# Defina un método para modificar los valores de minutos y segundos en función del valor del temporizador
def showCounter (auto):
# Verifique el valor de la variable startWatch para iniciar o detener el cronómetro
si yo mismo.startWatch:
# Incrementar el contador en 1
uno mismo.contador + = 1
# Cuente y configure el valor del contador de tiempo
cnt = int ((uno mismo.contador / 10 - int (self.contador / 10)) * 10)
uno mismo.cuenta = '0' + str (cnt)
# Establecer el segundo valor
si int (yo.contador / 10) < 10 :
uno mismo.segundo = '0' + str (int (self.contador / 10))
demás:
uno mismo.segundo = str (int (self.contador / 10))
# Establecer el valor de los minutos
si yo mismo.contador / 10 == 60.0:
uno mismo.segundo == '00'
uno mismo.contador = 0
min = int (self.minuto) + 1
si min < 10 :
uno mismo.minuto = '0' + str (min)
demás:
uno mismo.minuto = str (min)
# Fusionar los valores mintue, second y count
texto = yo.minuto + ':' + yo.segundo + ':' + yo.contar
# Mostrar los valores del cronómetro en la etiqueta
uno mismo.etiqueta.setText ('

'+ texto +'

')
# Definir método para manejar el botón de inicio
def Inicio (auto):
# Establecer el título del botón de inicio según el título anterior
si yo mismo.comienzo.text () == 'Detener':
uno mismo.comienzo.setText ('Reanudar')
uno mismo.startWatch = Falso
demás:
# haciendo que startWatch sea verdad
uno mismo.startWatch = Verdadero
uno mismo.comienzo.setText ('Detener')
# Definir método para manejar el botón de reinicio
def Reset (auto):
uno mismo.startWatch = Falso
# Restablecer todas las variables del contador
uno mismo.contador = 0
uno mismo.minuto = '00'
uno mismo.segundo = '00'
uno mismo.cuenta = '00'
# Establecer los valores iniciales para el cronómetro
uno mismo.etiqueta.setText (str (self.encimera))
# Crea el objeto de la aplicación y ejecuta la aplicación
app = QApplication (sys.argv)
stopWt = StopWatchWindow ()
aplicación.ejecutivo ()

La siguiente ventana aparecerá después de que se ejecute el script anterior.

El cronómetro comenzará a funcionar después de que el usuario haga clic en el Comienzo 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 usando el QTimer clase. El script mostrará el reloj digital en una etiqueta leyendo la hora actual del sistema una vez por segundo.

# Importar módulos necesarios
importar sys
de PyQt5.QtWidgets importan QApplication, QWidget, QLabel, QVBoxLayout
de PyQt5.Importación de QtCore QTimer, QTime, Qt
de PyQt5.Importación de QtGui QFont
# Definir clase para crear el reloj digital
clase DigitalClock (QWidget):
def __init __ (yo):
súper().__en eso__()
# Crea una etiqueta con fuente y alineación
uno mismo.lblTimer = QLabel ()
fuente = QFont ('Tiempos', 50)
uno mismo.lblTimer.setFont (fuente)
uno mismo.lblTimer.setAlignment (Qt.Alinear al centro)
# Crea el objeto de diseño vartical
v_layout = QVBoxLayout ()
v_layout.addWidget (self.lblTimer)
uno mismo.setLayout (v_layout)
# Cree el objeto del temporizador y llame a los métodos necesarios para mostrar el reloj
timer = QTimer (auto)
Temporizador.se acabó el tiempo.conectar (uno mismo.Muestra el reloj)
Temporizador.inicio (1000)
# Establecer el título de la ventana
uno mismo.setWindowTitle ("Reloj digital con QTimer")
# Cambiar el tamaño de la ventana
uno mismo.cambiar el tamaño (270, 120)
# Mover la posición de la ventana
uno mismo.mover (800, 400)
# Método de llamada para mostrar la hora
uno mismo.Muestra el reloj()
# Mostrar la ventana
uno mismo.show()
def showClock (auto):
# Leer la hora actual
Current_Time = QTime.tiempo actual()
# Mostrar el reloj digital
uno mismo.lblTimer.setText ('

'+ Current_Time.toString ('hh: mm: ss AP') + '

')
# Crea el objeto de la aplicación y ejecuta la aplicación
app = QApplication (sys.argv)
ganar = DigitalClock ()
aplicación.ejecutivo ()

La siguiente ventana de salida aparecerá después de que se ejecute el script anterior.

Conclusión

El valor de fecha y hora de la hora actual del sistema se puede leer de varias formas utilizando la clase QTimer de la biblioteca PyQt. La clase QTimer se utilizó en este tutorial para ejecutar varios scripts de ejemplo relacionados con el tiempo.

Tutorial de Battle for Wesnoth
The Battle for Wesnoth es uno de los juegos de estrategia de código abierto más populares que puedes jugar en este momento. Este juego no solo ha esta...
0 A.D. Tutorial
De los muchos juegos de estrategia que existen, 0 A.D. logra destacarse como un título completo y un juego táctico muy profundo a pesar de ser de códi...
Tutorial de Unity3D
Introducción a Unity 3D Unity 3D es un potente motor de desarrollo de juegos. Es multiplataforma, es decir, te permite crear juegos para dispositivos ...