A classe Qtimer da biblioteca PYQT permite que os usuários criem um relógio digital, contador de tempo, barra de progresso e muito mais. Esta aula é usada para criar um cronômetro regular que envia um sinal quando o timer dispara e herda do
QObject aula. O objeto do
Qtimer A classe é criada como criança de um widget. Quando o widget exclui, o objeto do timer 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.
Qtimer uso
As seções a seguir fornecem exemplos que ilustram como implementar dois aplicativos diferentes usando a classe Qtimer.
Exemplo 1: Crie um cronômetro
O script a seguir implementará um aplicativo StopWatch no 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 redefinir o balcão. Quando o usuário clica no Começar botão, o balcão começará a contar e a legenda do Começar o botão será alterado para Parar. Quando o usuário clica no Começar botão com a legenda Parar, o balcão vai parar temporariamente, e a legenda do Começar o botão será alterado para Retomar para continuar o balcão para a próxima vez. Quando o usuário clica no Reiniciar Botão, todos os valores do contador serão inicializados para 0.
# Importar módulos necessários
Importar sistemas
de pyqt5.Qtwidgets importar *
de pyqt5.Qtcore importar *
# Defina a classe para criar o Stop Watch
Classe StopWatchWindow (QMainWindow):
def __init __ (self):
# Ligue para o construtor pai
super().__iniciar__()
# Defina o título da janela
auto.setWindowTitle ("Pare de vigia usando Qtimer")
# Defina a geometria para a janela
auto.Setgeometria (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
# Criar rótulo para exibir o relógio
auto.etiqueta = Qlabel (self)
# Defina a geometria para o rótulo
auto.rótulo.Setgeometria (100, 40, 150, 70)
# Crie o botão Iniciar
auto.start = qpushbutton ("start", self)
# Defina a geometria no botão Iniciar
auto.começar.Setgeometria (50, 120, 100, 40)
# Call Start () Método quando o botão Iniciar é clicado
auto.começar.pressionado.Conecte -se (self.Começar)
# Crie o botão de redefinição
RESETWATCH = QPUSHButton ("Redefinir", Self)
# Defina a geometria no botão de parada
RedefinirWatch.Setgeometria (160, 120, 100, 40)
# Call RESET () Método quando o botão Redefinir é clicado
RedefinirWatch.pressionado.Conecte -se (self.Reiniciar)
# Crie objeto de timer
Timer = Qtimer (self)
# Adicione um método com o timer
cronômetro.tempo esgotado.Conecte -se (self.exibição)
# Call Start () Método para modificar o valor do timer
cronômetro.Start (100)
# Mova a posição da janela
auto.mover (900, 400)
# Exiba a janela
auto.mostrar()
# Defina um método para modificar os valores de minutos e segundos com base no valor do timer
Def ShowCounter (self):
# Verifique o valor da variável startwatch para iniciar ou parar o stop watch
se eu.StartWatch:
# Contador de incremento em 1
auto.contador += 1
# Conte e defina o valor do contador de tempo
cnt = int ((self.contador/10 - int (self.contador/10))*10)
auto.count = '0' + str (cnt)
# Defina o segundo valor
Se int (self.contador/10) < 10 :
auto.segundo = '0' + str (int (self.contador / 10))
outro:
auto.segundo = str (int (self.contador / 10))
# Defina o valor 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)
outro:
auto.minuto = str (min)
# Mesclar o MINTUE, segundo e contagem valores
texto = self.minuto + ':' + eu.segundo + ':' + eu.contar
# Exiba os valores de parada de vigia 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 () == 'Stop':
auto.começar.setText ('currículo')
auto.startwatch = false
outro:
# Tornando o StartWatch para verdadeiro
auto.startwatch = true
auto.começar.setText ('Stop')
# Defina o método para lidar com o botão Redefinir
Def Reset (self):
auto.startwatch = false
# Redefinir todas as variáveis contra
auto.contador = 0
auto.minuto = '00'
auto.segundo = '00'
auto.contagem = '00'
# Defina os valores iniciais para o stop watch
auto.rótulo.setText (str (self.contador))
# Crie objeto de aplicativo e execute o aplicativo
app = qapplication (sys.argv)
StopWt = StopWatchWindow ()
aplicativo.exec ()
A seguinte janela aparecerá após o execução do script acima.
O stopwatch começará a funcionar depois que o usuário clicar no Começar botão.
O balcão vai parar de contar depois que o usuário clica no Parar botão.
Exemplo 2: Crie 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 o tempo atual do sistema uma vez a cada segundo.
# Importar módulos necessários
Importar sistemas
de pyqt5.Qtwidgets importar qapplication, qwidget, qlabel, qvboxlayout
de pyqt5.Qtcore importar qtimer, qtime, qt
de pyqt5.Qtgui importar 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 ()
Fonte = QFont ('Times', 50)
auto.lbltimer.setFont (fonte)
auto.lbltimer.Setalignment (qt.AlignCenter)
# Crie o objeto Vartical Layout
v_layout = qvboxlayout ()
v_layout.addWidget (self.lbltimer)
auto.setLayout (v_layout)
# Crie o objeto do timer e chame os métodos necessários para exibir o relógio
Timer = Qtimer (self)
cronômetro.tempo esgotado.Conecte -se (self.showclock)
cronômetro.Iniciar (1000)
# Defina o título da janela
auto.setWindowTitle ("Clock Digital usando Qtimer")
# Redimensione a janela
auto.redimensionar (270, 120)
# Mova a posição da janela
auto.mover (800, 400)
# Método de chamada para exibir o tempo
auto.showclock ()
# Exiba a janela
auto.mostrar()
def showclock (self):
# Leia a hora atual
Current_time = qtime.hora atual()
# Exiba o relógio digital
auto.lbltimer.setText ('
' + Current_time.tostring ('hh: mm: ss ap') + '
')
# Crie 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 do tempo 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 exemplos de scripts relacionados ao tempo.