Pitão

Como usar o PyQt QTimer

Como usar o PyQt QTimer
A classe QTimer da biblioteca PyQt permite aos usuários criar um relógio digital, contador de tempo, barra de progresso e muito mais. Esta classe é usada para criar um cronômetro regular que envia um sinal quando o cronômetro dispara e herda do QObject aula. O objeto do QTimer classe é criada como filha de um widget. Quando o widget é excluído, o objeto cronômetro também exclui. O QTimer classe fornece uma função estática chamada Tiro único() que pode ser usado para chamar uma função após um período específico. Este tutorial mostra como usar o QTimer classe para criar aplicativos PyQt relacionados ao tempo.

Uso de QTimer

As seções a seguir fornecem exemplos que ilustram como implementar dois aplicativos diferentes usando a classe QTimer.

Exemplo 1: criar um cronômetro

O script a seguir implementará um aplicativo de cronômetro em Python usando a classe QTimer. Este aplicativo contará o número de segundos e o número de minutos. Dois botões são usados ​​para iniciar, parar, retomar e zerar o contador. Quando o usuário clica no Começar botão, o contador começará a contar, e a legenda do Começar botão será alterado para Pare. Quando o usuário clica no Começar botão com a legenda Pare, o contador irá parar temporariamente, e a legenda do Começar botão será alterado para Retomar para continuar o contador para a próxima vez. Quando o usuário clica no Redefinir botão, todos os valores do contador serão inicializados em 0.

# Importe os módulos necessários
import sys
de PyQt5.Importação de QtWidgets *
de PyQt5.Importação QtCore *
# Defina a classe para criar o cronômetro
classe StopWatchWindow (QMainWindow):
def __init __ (self):
# Chame o construtor pai
super().__iniciar__()
# Defina o título da janela
auto.setWindowTitle ("Stop Watch usando QTimer")
# Defina a geometria da janela
auto.setGeometry (100, 100, 300, 200)
# Defina as variáveis ​​necessárias
auto.contador = 0
auto.minuto = '00'
auto.segundo = '00'
auto.contagem = '00'
auto.startWatch = False
# Crie uma etiqueta para exibir o relógio
auto.rótulo = QLabel (self)
# Definir geometria para o rótulo
auto.rótulo.setGeometry (100, 40, 150, 70)
# Criar botão de início
auto.start = QPushButton ("Iniciar", self)
# Defina a geometria para o botão iniciar
auto.começar.setGeometry (50, 120, 100, 40)
# Chame o método start () quando o botão iniciar for clicado
auto.começar.pressionado.conectar (eu mesmo.Começar)
# Criar botão de reinicialização
resetWatch = QPushButton ("Reset", self)
# Defina a geometria para o botão de parada
resetWatch.setGeometry (160, 120, 100, 40)
# Chame o método reset () quando o botão de reset for clicado
resetWatch.pressionado.conectar (eu mesmo.Redefinir)
# Criar objeto temporizador
timer = QTimer (self)
# Adicione um método com o cronômetro
cronômetro.tempo esgotado.conectar (eu mesmo.showCounter)
# Chame o método start () para modificar o valor do temporizador
cronômetro.iniciar (100)
# Mova a posição da janela
auto.mover (900, 400)
# Exibir a janela
auto.mostrar()
# Defina um método para modificar os valores de minutos e segundos com base no valor do cronômetro
def showCounter (self):
# Verifique o valor da variável startWatch para iniciar ou parar o cronômetro
se eu.startWatch:
# Incrementa o contador em 1
auto.contador + = 1
# Conte e defina o valor do contador de tempo
cnt = int ((self.counter / 10 - int (self.contador / 10)) * 10)
auto.contagem = '0' + str (cnt)
# Defina o segundo valor
if int (self.contador / 10) < 10 :
auto.segundo = '0' + str (int (self.contador / 10))
senão:
auto.segundo = str (int (self.contador / 10))
# Defina o valor do minuto
se eu.contador / 10 == 60.0:
auto.segundo == '00'
auto.contador = 0
min = int (self.minuto) + 1
se min < 10 :
auto.minuto = '0' + str (min)
senão:
auto.minuto = str (min)
# Mesclar os valores de minuto, segundo e contagem
text = self.minuto + ':' + self.segundo + ':' + self.contar
# Exibir os valores do cronômetro no rótulo
auto.rótulo.setText ('

'+ texto +'

')
# Defina o método para lidar com o botão iniciar
def Start (self):
# Defina a legenda do botão iniciar com base na legenda anterior
se eu.começar.text () == 'Parar':
auto.começar.setText ('Resume')
auto.startWatch = False
senão:
# making startWatch to true
auto.startWatch = True
auto.começar.setText ('Stop')
# Defina o método para lidar com o botão de reinicialização
Def Reset (self):
auto.startWatch = False
# Reinicializar todas as variáveis ​​do contador
auto.contador = 0
auto.minuto = '00'
auto.segundo = '00'
auto.contagem = '00'
# Defina os valores iniciais para o cronômetro
auto.rótulo.setText (str (self.balcão))
# Crie um objeto de aplicativo e execute o aplicativo
app = QApplication (sys.argv)
stopWt = StopWatchWindow ()
aplicativo.exec ()

A seguinte janela iráaparecer após o script acima ser executado.

O cronômetro começará a funcionar depois que o usuário clicar no Começar botão.

O contador irá parar de contar depois que o usuário clicar no Pare botão.

Exemplo 2: criar um relógio digital

O script a seguir implementará um relógio digital em Python usando o QTimer aula. O script exibirá o relógio digital em uma etiqueta lendo a hora atual do sistema uma vez a cada segundo.

# Importe os módulos necessários
import sys
de PyQt5.QtWidgets import QApplication, QWidget, QLabel, QVBoxLayout
de PyQt5.QtCore import QTimer, QTime, Qt
de PyQt5.QtGui import QFont
# Defina a classe para criar o relógio digital
classe DigitalClock (QWidget):
def __init __ (self):
super().__iniciar__()
# Crie uma etiqueta com fonte e alinhamento
auto.lblTimer = QLabel ()
font = QFont ('Times', 50)
auto.lblTimer.setFont (fonte)
auto.lblTimer.setAlignment (Qt.AlignCenter)
# Crie o objeto de layout vártico
v_layout = QVBoxLayout ()
v_layout.addWidget (self.lblTimer)
auto.setLayout (v_layout)
# Crie o objeto cronômetro e chame os métodos necessários para exibir o relógio
timer = QTimer (self)
cronômetro.tempo esgotado.conectar (eu mesmo.showClock)
cronômetro.iniciar (1000)
# Defina o título da janela
auto.setWindowTitle ("Relógio digital usando QTimer")
# Redimensionar a janela
auto.redimensionar (270, 120)
# Mova a posição da janela
auto.mover (800, 400)
# Método de chamada para exibir a hora
auto.showClock ()
# Exibir a janela
auto.mostrar()
def showClock (self):
# Leia a hora atual
Current_Time = QTime.hora atual()
# Exibir o relógio digital
auto.lblTimer.setText ('

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

')
# Crie um objeto de aplicativo e execute o aplicativo
app = QApplication (sys.argv)
win = DigitalClock ()
aplicativo.exec ()

A seguinte janela de saída aparecerá após o script acima ser executado.

Conclusão

O valor de data e hora da hora atual do sistema pode ser lido de várias maneiras usando a classe QTimer da biblioteca PyQt. A classe QTimer foi usada neste tutorial para executar vários scripts de exemplo relacionados ao tempo.

Controle e gerencie o movimento do mouse entre vários monitores no Windows 10
Gerenciador de mouse com tela dupla permite que você controle e configure o movimento do mouse entre vários monitores, diminuindo seus movimentos pert...
WinMouse permite que você personalize e melhore o movimento do ponteiro do mouse no PC com Windows
Se você quiser melhorar as funções padrão do ponteiro do mouse, use um freeware WinMouse. Ele adiciona mais recursos para ajudá-lo a obter o máximo do...
O botão esquerdo do mouse não funciona no Windows 10
Se você estiver usando um mouse dedicado com seu laptop ou computador desktop, mas o o botão esquerdo do mouse não funciona no Windows 10/8/7 por algu...