Jump to content

Ajuda com sintaxe/função


Lucas Eduardo Alves

Postagens Recomendadas

Estou fazendo um sistema onde preciso ter uma label com horario (horas minutos e segundos) no caso a label chamada (hora) sempre atualizando na tela, uso o tkinter e o ctk como GUI, gostaria de uma ajuda pois não consigo fonte para sanar meu problema, segue o codigo abaixo:

 

O codigo abaixo nao funciona por conta do while, sou novato e preciso de uma luz!!!

 

import tkinter
import customtkinter
import datetime
import time
 
janela = customtkinter.CTk()
janela.geometry("300x500")
janela.resizable(width=False, height=False)
 
h = datetime.datetime.now()
 
def change():
    while True:
        hr = datetime.datetime.now()
        horas = [hr.hour, hr.minute, hr.second]
        hora.configure(text=[hr.hour, hr.minute, hr.second])
        time.sleep(0.5)
       
 
global hora
hora = tkinter.Label(janela, text=[h.hour, h.minute, h.second])
hora.pack()
btn = customtkinter.CTkButton(janela, text="Registrar", corner_radius=10000, width=2, height=200)
btn.place(relx=0.5, rely=0.5, anchor=tkinter.CENTER)



 
change()
janela.mainloop()
Link to comment
Compartilhe em outros sites

Opa, tudo bem?

O problema está ocorrendo porque você está executando um loop infinito na função change() então o código janela.mainloop() nunca é alcançado.

Uma solução seria utilizar a função after() do tkinter para agendar a atualização do relógio em intervalos regulares:

import tkinter
import customtkinter
import datetime
 
janela = customtkinter.CTk()
janela.geometry("300x500")
janela.resizable(width=False, height=False)
 
hora = tkinter.Label(janela)
hora.pack() 

def change():
    hr = datetime.datetime.now()
    horas = [hr.hour, hr.minute, hr.second]
    hora.configure(text=[horas])
    #Agenda execução do método change.
    janela.after(500, change)

        
change()

btn = customtkinter.CTkButton(janela, text="Registrar", corner_radius=10000, width=2, height=200)
btn.place(relx=0.5, rely=0.5, anchor=tkinter.CENTER)

janela.mainloop()

 

  • Curtir 1
  • Amei 1
Link to comment
Compartilhe em outros sites

Crie uma conta ou entre para comentar 😀

Você precisa ser um membro para deixar um comentário.

Crie a sua conta

Participe da nossa comunidade, crie sua conta.
É bem rápido!

Criar minha conta agora

Entrar

Você já tem uma conta?
Faça o login agora.

Entrar agora


×
×
  • Create New...