Introdução
Neste projeto, criaremos uma aplicação de relógio digital usando Python e a biblioteca Tkinter. Este relógio exibirá tanto a hora quanto a data atuais, e permitirá ao usuário alternar entre os formatos de hora de 12 e 24 horas. Dividiremos o código em várias etapas, começando com a instalação das bibliotecas necessárias e terminando com a execução do projeto.
👀 Pré-visualização

🎯 Tarefas
Neste projeto, você aprenderá:
- Como instalar as bibliotecas necessárias para construir um relógio digital com Python.
- Como configurar o projeto criando o script Python e importando as bibliotecas necessárias.
- Como definir uma função para atualizar e exibir a hora e a data atuais.
- Como criar uma função para alternar entre os formatos de hora de 12 e 24 horas.
- Como criar a janela principal da aplicação e configurar os estilos da GUI.
- Como criar e colocar os componentes da GUI na janela principal.
- Como iniciar o relógio chamando as funções necessárias e executando o loop principal da GUI.
🏆 Conquistas
Após concluir este projeto, você será capaz de:
- Instalar bibliotecas usando pip, o gerenciador de pacotes Python.
- Usar a biblioteca Tkinter para criar interfaces gráficas de usuário (GUI) em Python.
- Formatar e exibir hora e data em Python.
- Personalizar a aparência dos componentes da GUI usando estilos temáticos.
- Criar botões com texto e funcionalidades diferentes.
- Executar um script Python e executar um loop principal da GUI.
Instalar as Bibliotecas Necessárias
Antes de começarmos a construir nosso relógio digital com Python, precisamos garantir que temos as bibliotecas necessárias instaladas. Nesta etapa, instalaremos as bibliotecas necessárias usando pip, o gerenciador de pacotes Python.
sudo apt update
sudo apt-get install python3-tk -y
pip install ttkthemes
Aqui está a finalidade dessas bibliotecas:
tkinter: Esta biblioteca fornece as ferramentas e componentes necessários para criar interfaces gráficas de usuário (GUIs) em Python. É uma biblioteca padrão para desenvolvimento de GUI.ttkthemes: Esta biblioteca nos permite usar estilos temáticos e personalizar a aparência de nossos componentes Tkinter para dar ao nosso relógio digital um design visualmente atraente.
Você pode instalar essas bibliotecas usando os comandos acima em seu terminal ou prompt de comando. Uma vez instaladas, você está pronto para prosseguir com a construção do relógio digital, conforme descrito nas etapas seguintes.
Agora, crie um novo arquivo Python chamado digital_clock.py e abra-o em seu editor de código preferido.
cd ~/project
touch digital_clock.py
Configurando o Projeto
Primeiro, vamos configurar o projeto criando o script Python necessário e importando as bibliotecas necessárias.
## Importar as bibliotecas necessárias
import tkinter as tk
from tkinter import ttk
from ttkthemes import ThemedStyle
from time import strftime
Nesta etapa:
- Importamos a biblioteca
tkinterpara criar a interface gráfica de usuário (GUI). - Importamos componentes específicos (
ttk,ThemedStyle) detkinterpara estilização avançada. - Importamos a função
strftimedo módulotimepara formatar e exibir a hora.
Definir a Função de Exibição de Tempo
Em seguida, vamos definir uma função para atualizar e exibir a hora e a data atuais.
def time():
current_time_format = "%H:%M:%S" if is_24_hour_format else "%I:%M:%S %p"
current_time = strftime(current_time_format)
current_date = strftime("%A, %B %d, %Y")
label_time.config(text=current_time)
label_date.config(text=current_date)
label_time.after(1000, time)
Nesta etapa:
- Criamos uma função chamada
time()que atualiza os rótulos de hora e data. - A variável
current_time_formatdetermina se deve usar um formato de hora de 24 horas ou 12 horas com base na flagis_24_hour_format. - Usamos a função
strftimepara obter a hora e a data atuais no formato desejado. - Os rótulos (
label_timeelabel_date) são atualizados com a hora e a data atuais, respectivamente. - A linha
label_time.after(1000, time)agenda a funçãotimepara ser executada a cada 1000 milissegundos (1 segundo) para atualizar continuamente a hora.
Alternar Formato de Hora
Vamos criar uma função que permite ao usuário alternar entre os formatos de hora de 12 e 24 horas.
def toggle_time_format():
global is_24_hour_format
is_24_hour_format = not is_24_hour_format
time_format_button.config(text="12 Hour" if is_24_hour_format else "24 Hour")
Nesta etapa:
- Definimos uma função chamada
toggle_time_format()que alterna a flagis_24_hour_formatentreTrueeFalse. - O rótulo no botão de formato de hora (
time_format_button) é atualizado para exibir "12 Hour" ou "24 Hour" com base no formato atual.
Criar a Janela Principal da Aplicação
Agora, vamos criar a janela principal da aplicação e definir seu título e dimensões.
root = tk.Tk()
root.title("Digital Clock")
root.geometry("400x250")
Nesta etapa:
- Criamos a janela principal da aplicação usando
tk.Tk(). - Definimos o título da janela como "Digital Clock".
- As dimensões da janela são definidas como 400x250 pixels.
Configurar Estilos da Interface Gráfica (GUI)
Configure os estilos para os rótulos (labels), botões (buttons) e frames para personalizar a aparência do relógio.
style = ThemedStyle(root)
style.set_theme("plastik")
style.configure(
"TLabel", foreground="#FF5733", background="#333333", font=("calibri", 48, "bold")
)
style.configure(
"TButton", foreground="#FF5733", background="#333333", font=("calibri", 10, "bold")
)
style.configure("TFrame", background="#333333")
Nesta etapa:
- Criamos um estilo temático para os componentes da GUI para aplicar uma aparência consistente.
- A cor do texto do rótulo, a cor de fundo e a fonte são personalizadas.
- A cor do texto do botão, a cor de fundo e a fonte são personalizadas.
- A cor de fundo do frame é personalizada.
Criar e Posicionar Componentes da Interface Gráfica (GUI)
Agora, vamos criar e posicionar os componentes da GUI na janela principal.
frame = ttk.Frame(root, style="TFrame", padding=20)
frame.place(relx=0.5, rely=0.5, anchor="center")
label_time = ttk.Label(frame, font=("calibri", 48, "bold"))
label_time.pack()
label_date = ttk.Label(frame, font=("calibri", 16))
label_date.pack()
is_24_hour_format = True
time_format_button = ttk.Button(
frame, text="12 Hour", command=toggle_time_format, style="TButton"
)
time_format_button.pack(pady=20)
Nesta etapa:
- Criamos um frame (
frame) com o estilo e padding especificados. - O frame é centralizado na janela principal.
- Dois rótulos (
label_timeelabel_date) são criados para exibir a hora e a data. - Um valor inicial de
Trueé definido parais_24_hour_format. - Um botão (
time_format_button) é criado com o texto "12 Hour" e a funçãotoggle_time_formaté definida como seu comando. - Todos os componentes são empacotados e posicionados no frame.
Iniciar o Cronômetro
Finalmente, vamos iniciar o relógio chamando a função time e executando o loop principal da GUI.
time()
root.mainloop()
Nesta etapa:
- Chamamos a função
time()para iniciar o relógio. - O método
root.mainloop()inicia o loop principal da GUI, permitindo que a aplicação seja executada e atualizada em tempo real.
Agora, vamos executar a aplicação do relógio digital.
cd ~/project
python digital_clock.py

Resumo
Neste projeto, criamos uma aplicação de relógio digital usando Python e Tkinter. Dividimos o processo em várias etapas, incluindo a configuração do projeto, a definição de funções para exibição da hora e alternância de formato, a configuração de estilos da GUI, a criação de componentes da GUI e a execução da aplicação do relógio. Este relógio digital exibe a hora e a data atuais e permite que os usuários alternem entre os formatos de hora de 12 e 24 horas.



