Simples relógio digital
Publicado por Sandro Marcell 08/09/2008
[ Hits: 8.198 ]
Homepage: http://sanmarcell.wordpress.com
Simples script em Tcl/Tk que mostra um relógio digital com data e dia da semana.
#!/usr/bin/wish
#
# Simples relogio digital (com data) em Tcl/Tk.
# Sandro Marcell (sandro_marcell@yahoo.com.br)
#
# Obs.:
# - As horas sao mostradas no formato 24h;
# - O relogio ainda apita!
#
# Mais detalhes:
# man tk
# tclhelp
# Codificacao padrao:
encoding system utf-8
# Procedimento principal que formata a data, hora e dia:
proc _Principal_ {} {
# Dia da semana por extenso:
switch [clock format [clock seconds] -format "%w"] {
0 { set dia "Domingo" }
1 { set dia "Segunda-feira" }
2 { set dia "Terça-feira" }
3 { set dia "Quarta-feira" }
4 { set dia "Quinta-feira" }
5 { set dia "Sexta-feira" }
6 { set dia "Sábado" }
}
# Cores diferentes para cada dia:
switch -glob $dia {
Dom* { set cor "#31a90b" }
Seg* { set cor "#be1b0b" }
Ter* { set cor "#ebe80b" }
Qua* { set cor "#f8700b" }
Qui* { set cor "#1c70e3" }
Sex* { set cor "#b6a8c1" }
Sáb* { set cor "#d8c908" }
}
# Mes por extenso:
switch [clock format [clock seconds] -format "%m"] {
01 { set m "Janeiro" }
02 { set m "Fevereiro" }
03 { set m "Março" }
04 { set m "Abril" }
05 { set m "Maio" }
06 { set m "Junho" }
07 { set m "Julho" }
08 { set m "Agosto" }
09 { set m "Setembro" }
10 { set m "Outubro" }
11 { set m "Novembro" }
12 { set m "Dezembro" }
}
# Data:
set d [clock format [clock seconds] -format "%d"]
# Ano:
set a [clock format [clock seconds] -format "%Y"]
# Hora
set h [clock format [clock seconds] -format "%T"]
# Reconfigurando label's:
.clock configure -text $h -font {helvetica 14 bold}
.data configure -text "$d de $m de $a"
.dia configure -text $dia -background $cor
# Se for HH:MM:SS em ponto, apite!
if {[regexp {(([01][0-9]|2[0-3]):00:00)} $h]} { puts "\a" }
# Aguardar 1 segundo antes de atualizar tudo:
after 1000 _Principal_
}
# Montando as janelas (widgets)
tk_setPalette "#000000"
wm title . "TkClock"
wm minsize . 200 80
wm maxsize . 200 80
# Mostrando relogio:
label .clock -text {}
# Montando o widget label:
pack .clock -side top -fill x -expand yes
# Mostrando data:
label .data -text {}
pack .data -side bottom -fill x -expand yes
# Mostrando dia
label .dia -text {}
pack .dia -side bottom -fill x -expand yes
# Chamando procedimento:
_Principal_
# Fechando janela (tecle <ENTER>):
bind all <Return> {
after cancel _Principal_
destroy .
exit
}
# Fim
Criando uma simples lixeira para o usuário [Melhorado]
Compactando / descompactando arquivos (Melhorado)
Convertendo escalas termométricas
Compactando arquivos e diretórios simultâneamente
Nenhum comentário foi encontrado.
Monitorando o Preço do Bitcoin ou sua Cripto Favorita em Tempo Real com um Widget Flutuante
IA Turbina o Desktop Linux enquanto distros renovam forças
Como extrair chaves TOTP 2FA a partir de QRCODE (Google Authenticator)
Como realizar um ataque de força bruta para desobrir senhas?
Como usar Gpaste no ambiente Cinnamon
Atualizando o Fedora 42 para 43
Atalho para usar interrogação (1)
VOL já não é mais como antes? (12)
Scripts ou binários [RESOLVIDO] (4)
Pergunta: Meu teclado não está respondendo direito como e consertar? ... (4)









