Mundo em Python

Contagem

from tkinter import *

root = Tk()
root.geometry("700x400")
root.resizable(0, 0)
root.config(bg="#103030")
root.title("Contagem") titulo = Label(text="Contagem", font=("Arial", 28, "bold"), bg="#103030", fg="#49e3e3")
titulo.place(relx=0.35, rely=0.05) texto_sub1 = Label(text="Número inicial:", font=("Arial", 18, "bold"), bg="#103030", fg="#49e3e3")
texto_sub1.place(relx=0.2, rely=0.32) Número_inicial = StringVar()
Número_inicial_entrada = Entry(textvariable=Número_inicial, font=("Arial", 12, "bold"),
bg="white", fg="blue", justify='center')
Número_inicial_entrada.place(relx=0.5, rely=0.33, relwidth=0.35) resultado_texto = Label(text="", font=("Arial", 12, "bold"), bg="#cfe2f3")
resultado_texto.place(relx=0.05, rely=0.8, relwidth=0.9, relheight=0.15) # Variáveis de controle global para simular espera
n_atual = 0
n_total = 0
i_contador = 1
espera_inicial = True

def limpar():
global n_atual, n_total, i_contador, espera_inicial
Número_inicial_entrada.delete(0, END)
resultado_texto.config(text="")
n_atual = 0
n_total = 0
i_contador = 1
espera_inicial = True

def iniciar_contagem():
global n_total, n_atual, i_contador, espera_inicial
try:
n_total = int(Número_inicial.get())
n_atual = n_total
i_contador = 1
espera_inicial = True
resultado_texto.config(text="Iniciando contagem...")
root.after(100, contar)
except ValueError:
resultado_texto.config(text="Insira um número válido!") def contar():
global n_total, n_atual, i_contador, espera_inicial if n_atual == 0:
resultado_texto.config(text="Contagem finalizada!")
return

if espera_inicial:
espera_inicial = False
tempo = 2000 if n_atual == n_total else 20000 # 2 ou 20 segundos
resultado_texto.config(text=f"Esperando {tempo//1000} segundos...")
root.after(tempo, contar)
else:
if i_contador <= n_atual:
texto = resultado_texto.cget("text")
novo_texto = texto + f"{i_contador} "
resultado_texto.config(text=novo_texto)
i_contador += 1
root.after(3000, contar) # espera 3 segundos entre números
else:
n_atual -= 1
i_contador = 1
resultado_texto.config(text="")
espera_inicial = True
root.after(100, contar) # Botões
but1 = Button(text="Calcular", bd=2, bg='#107db2', fg='white',
font=('verdana', 12, 'bold'), command=iniciar_contagem)
but1.place(relx=0.1, rely=0.65, relwidth=0.25, relheight=0.1) but_limpar = Button(text="Limpar", bd=2, bg='#107db2', fg='white',
font=('verdana', 12, 'bold'), command=limpar)
but_limpar.place(relx=0.4, rely=0.65, relwidth=0.25, relheight=0.1) but_sair = Button(text="Sair", bd=2, bg='#107db2', fg='white',
font=('verdana', 12, 'bold'), command=root.destroy)
but_sair.place(relx=0.7, rely=0.65, relwidth=0.25, relheight=0.1) root.mainloop()
0