Olá pessoal, neste tutorial iremos criar um relógio digital em Python.
Aqui, usaremos o Tkinter para a GUI. Sem mais delongas, iniciaremos nosso aplicativo.
Vamos começar criando uma janela vazia no tkinter.
from tkinter import *
import tkinter
cor1 = "#3d3d3d" # preta
cor2 = "#fafcff" # branca
cor3 = "#21c25c" # verde
cor4 = "#eb463b" # vermelha
cor5 = "#dedcdc" # cinza
cor6 = "#3080f0" # azul
fundo = cor1
cor = cor3
janela = Tk()
janela.title("")
janela.geometry('440x180')
janela.resizable(width=FALSE, height=FALSE)
janela.configure(background=fundo)
janela.mainloop()
No código acima, criamos uma janela vazia no Tkinter, e definimos algumas cores que usaremos para nossa aplicação, a variável cor , será a cor da fonte, e a variável fundo será a cor de fundo.
E então importaremos o datetime, o que nos permitirá trabalhar com o horário e calendário.
from datetime import datetime
Depois disso, obteremos a hora, o dia da semana, o mês e o ano.
tempo = datetime.now()
hora = tempo.strftime("%H:%M:%S")
dia_semana = tempo.strftime("%A")
dia = tempo.day
mes = tempo.strftime("%b")
ano = tempo.strftime("%Y")
Vamos criar uma função e passar todos esses valores para essa função.
def relogio():
tempo = datetime.now()
hora = tempo.strftime("%H:%M:%S")
dia_semana = tempo.strftime("%A")
dia = tempo.day
mes = tempo.strftime("%b")
ano = tempo.strftime("%Y")
Depois disso vamos criar um label que mostrará a hora.
l1 = Label(janela, text="10:05:05", font=('Arial 80'), bg=fundo, fg=cor)
l1.grid(row=0, column=0, sticky=NW, padx=5)
Agora vamos passar o valor da hora para o label que acabamos de criar, e executar a função.
def relogio():
tempo = datetime.now()
hora = tempo.strftime("%H:%M:%S")
dia_semana = tempo.strftime("%A")
dia = tempo.day
mes = tempo.strftime("%b")
ano = tempo.strftime("%Y")
l1.config(text=hora)
Muito bem agora, para manter o tempo dinâmico, usaremos o seguinte l1.after(200, relogio) execute a função relogio():
def relogio():
tempo = datetime.now()
hora = tempo.strftime("%H:%M:%S")
dia_semana = tempo.strftime("%A")
dia = tempo.day
mes = tempo.strftime("%b")
ano = tempo.strftime("%Y")
l1.config(text=hora)
l1.after(200, relogio)
l1 = Label(janela, text="10:05:05", font=('Arial 80'), bg=fundo, fg=cor)
l1.grid(row=0, column=0, sticky=NW, padx=5)
# executando
relogio()
Agora que nosso relógio já está funcionando, passaremos também os valores restantes, criando um novo label.
l2 = Label(janela, font=('Arial 20'), bg=fundo, fg=cor)
l2.grid(row=1, column=0, sticky=NW, padx=5)
E dentro da função de relógio iremos configurar da seguinte forma:
l2.config(text=dia_semana + " " + str(dia) + "/" + str(mes) + "/" + (ano))
As funcionalidades do nosso relógio já estão prontas, agora vamos estilizar nosso relógio para que pareça mais digital.
Primeiro vamos baixar a fonte aqui neste site. font https://www.1001fonts.com/digital-7-font.html
Depois de baixar e extrair as fontes, e coloca no mesmo diretório em que está o nosso script python, iremos adicionar ao nosso aplicativo, mas para isso teremos que instalar outra biblioteca Python primeiro, que é:
pip install pyglet
Após a instalação, escreva o seguinte código para adicionar a fonte que acabamos de baixar.
import pyglet
pyglet.font.add_file('digital-7.ttf')
Após importar e vincular a fonte, basta usar a fonte e ela estará ativa.
Código completo
from tkinter import *
import tkinter
from datetime import datetime
import pyglet
pyglet.font.add_file('digital-7.ttf')
cor1 = "#3d3d3d" # preta
cor2 = "#fafcff" # branca
cor3 = "#21c25c" # verde
cor4 = "#eb463b" # vermelha
cor5 = "#dedcdc" # cinza
cor6 = "#3080f0" # azul
fundo = cor1
cor = cor3
janela = Tk()
janela.title("")
janela.geometry('300x180')
janela.resizable(width=FALSE, height=FALSE)
janela.configure(background=fundo)
def relogio():
tempo = datetime.now()
hora = tempo.strftime("%H:%M:%S")
dia_semana = tempo.strftime("%A")
dia = tempo.day
mes = tempo.strftime("%b")
ano = tempo.strftime("%Y")
l1.config(text=hora)
l1.after(200, relogio)
l2.config(text=dia_semana + " " + str(dia) +
"/" + str(mes) + "/" + (ano))
l1 = Label(janela, text="10:05:05", font=('digital-7 80'), bg=fundo, fg=cor)
l1.grid(row=0, column=0, sticky=NW, padx=5)
l2 = Label(janela, font=('digital-7 20'), bg=fundo, fg=cor)
l2.grid(row=1, column=0, sticky=NW, padx=5)
# executando
relogio()
janela.mainloop()
0 Comentários