from tkinter import *
root = Tk()
root.geometry("700x300")
root.resizable(0, 0)
root.config(bg="#103030")
root.title("Contagem regressiva em números romanos")
titulo = Label(text="Contagem regressiva em números romanos",
font=("Arial", "23", "bold"), bg="#103030", fg="#49e3e3")
titulo.place(relx=0.05, rely=0.05)
texto_sub1 = Label(text="Número :",
font=("Arial", "18", "bold"), bg="#103030", fg="#49e3e3")
texto_sub1.place(relx=0.35, rely=0.32)
Numero = StringVar()
Numero_entrada = Entry(textvariable=Numero,
font=("Arial", "12", "bold"),
bg="white", fg="blue", justify='center')
Numero_entrada.place(relx=0.55, rely=0.33, relwidth=0.35)
def limpar():
Numero_entrada.delete(0, END)
resultado_texto.config(text="")
def int_to_roman(num):
val = [
1000, 900, 500, 400,
100, 90, 50, 40,
10, 9, 5, 4,
1
]
syms = [
"M", "CM", "D", "CD",
"C", "XC", "L", "XL",
"X", "IX", "V", "IV",
"I"
]
roman_num = ""
i = 0
while num > 0:
for _ in range(num // val[i]):
roman_num += syms[i]
num -= val[i]
i += 1
return roman_num
def app():
try:
num = int(Numero.get())
if num <= 0:
resultado_texto.config(text="Por favor, insira um número positivo!")
return
def countdown(i):
if i >= 0:
roman_num = int_to_roman(i)
resultado_texto.config(text=roman_num)
root.after(1000, countdown, i - 1)
else:
resultado_texto.config(text="Contagem finalizada!")
countdown(num)
except ValueError:
resultado_texto.config(text="Valor digitado inválido!")
but1 = Button(text="Mostrar", bd=2, bg='#107db2', fg='white',
font=('verdana', 12, 'bold'), command=app)
but1.place(relx=0.1, rely=0.5, 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.5, 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.5, relwidth=0.25, relheight=0.1)
resultado_texto = Label(text="",
font=("Arial", 12, "bold"), bg="#cfe2f3")
resultado_texto.place(relx=0.05, rely=0.7, relwidth=0.9, relheight=0.25)
root.mainloop()