from tkinter import *
import time
# Configurações da janela principal
root = Tk()
root.geometry("500x500")
root.resizable(0, 0)
root.config(bg="#103030")
root.title("Exercício físico")
# Título
titulo = Label(text="Exercício físico",
font=("Arial", "28", "bold"), bg="#103030", fg="#49e3e3")
titulo.place(relx=0.25, rely=0.05)
# Texto para número de séries
texto_sub1 = Label(text="Número de Séries:",
font=("Arial", "18", "bold"), bg="#103030", fg="#49e3e3")
texto_sub1.place(relx=0.15, rely=0.3)
# Texto para número de repetições
texto_sub2 = Label(text="Número de Repetições:",
font=("Arial", "18", "bold"), bg="#103030", fg="#49e3e3")
texto_sub2.place(relx=0.05, rely=0.45)
# Entrada para séries
Séries = StringVar()
Séries_entrada = Entry(textvariable=Séries,
font=("Arial", "12", "bold"),
bg="white", fg="blue", justify='center')
Séries_entrada.place(relx=0.61, rely=0.31, relwidth=0.25)
# Entrada para repetições
Repetições = StringVar()
Repetições_entrada = Entry(textvariable=Repetições,
font=("Arial", "12", "bold"),
bg="white", fg="blue", justify='center')
Repetições_entrada.place(relx=0.61, rely=0.46, relwidth=0.25)
# Função para limpar os campos
def limpar():
Séries_entrada.delete(0, END)
Repetições_entrada.delete(0, END)
resultado_texto.config(text="")
# Função para exibir as repetições de flexões e abdominais
def contagem_exercicio(repeticoes, nome_exercicio, ciclo):
for i in range(1, repeticoes + 1):
mensagem = f"Ciclo {ciclo}: {i}º {nome_exercicio}"
resultado_texto.config(text=mensagem)
root.update() # Atualiza a interface gráfica
time.sleep(2) # Pausa de 1 segundo entre as repetições
# Função principal do treino
def treino_completo(ciclos, repeticoes):
for ciclo in range(1, ciclos + 1):
resultado_texto.config(text=f"Iniciando ciclo {ciclo}...")
root.update()
time.sleep(1)
# Flexões
contagem_exercicio(repeticoes, "Flexão", ciclo)
# Abdominais
contagem_exercicio(repeticoes, "Abdominal", ciclo)
# Pausa de 10 segundos entre os ciclos
if ciclo < ciclos:
resultado_texto.config(text=f"Fim do ciclo {ciclo}. Descanse 10 segundos.")
root.update()
time.sleep(10)
resultado_texto.config(text="Treino completo! Bom trabalho!")
# Função que inicia o aplicativo com o treino
def app():
try:
s = int(Séries.get())
r = int(Repetições.get())
treino_completo(s, r)
except ValueError:
resultado_texto.config(text="Valor digitado inválido! ")
# Botão para iniciar o treino
but1 = Button(text="Iniciar", bd=2, bg='#107db2', fg='white',
font=('verdana', 12, 'bold'), command=app)
but1.place(relx=0.1, rely=0.6, relwidth=0.25, relheight=0.1)
# Botão para limpar os campos
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.6, relwidth=0.25, relheight=0.1)
# Botão para sair do programa
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.6, relwidth=0.25, relheight=0.1)
# Texto onde o resultado será mostrado
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)
# Inicia a janela principal
root.mainloop()