Mundo em Python

Classificação de Sismo melhorado.

from tkinter import *

# Função para classificar a magnitude
def app(event=None): # Permite que a função seja chamada pelo evento de pressionamento de tecla
try:
magnitude = float(Magnitude.get()) # Obtém a entrada e converte para float
if magnitude < 0:
Classificação_resultado.config(text="Inválido")
Descrição_resultado.config(text="Magnitude não\n pode ser negativa.")
elif magnitude < 3.0:
Classificação_resultado.config(text="Micro")
Descrição_resultado.config(text="Geralmente não\n é sentido\n pela população.")
elif magnitude < 4.0:
Classificação_resultado.config(text="Muito pequeno")
Descrição_resultado.config(text="Pode ser percebido,\n mas não causa danos.")
elif magnitude < 5.0:
Classificação_resultado.config(text="Pequeno")
Descrição_resultado.config(text="Sentido, com\n raros danos em\n estruturas frágeis.")
elif magnitude < 6.0:
Classificação_resultado.config(text="Moderado")
Descrição_resultado.config(text="Pode causar danos\nleves em\n construções fracas.")
elif magnitude < 7.0:
Classificação_resultado.config(text="Forte")
Descrição_resultado.config(text="Pode\n causar danos\n consideráveis em\n áreas habitadas.")
elif magnitude < 8.0:
Classificação_resultado.config(text="Grande")
Descrição_resultado.config(text="Pode causar destruição severa.")
elif magnitude < 9.0:
Classificação_resultado.config(text="Muito grande")
Descrição_resultado.config(text="Danos catastróficos\n em grandes áreas.")
else:
Classificação_resultado.config(text="Extremamente grande")
Descrição_resultado.config(text="Destruição massiva;\n raramente ocorre.")
except ValueError:
# Caso a entrada não seja um número válido
Classificação_resultado.config(text="Inválido")
Descrição_resultado.config(text="Por favor,\n insira um valor\n numérico válido.") # Função para limpar a entrada e os resultados
def limpar():
Magnitude_entrada.delete(0, END)
Classificação_resultado.config(text="")
Descrição_resultado.config(text="") # Criação da interface principal
root = Tk()
root.geometry("600x600")
root.resizable(0, 0)
root.config(bg="#103030")
root.title("Classificar Sismo Pela Magnitude") # Título
titulo = Label(text="Classificar Sismo",
font=("Arial", "28", "bold"), bg="#103030", fg="#49e3e3")
titulo.place(relx=0.2, rely=0.05) # Entrada de magnitude
texto_sub1 = Label(text="Magnitude escala Richter :",
font=("Arial", "18", "bold"), bg="#103030", fg="#49e3e3")
texto_sub1.place(relx=0.05, rely=0.2)
Magnitude = StringVar()
Magnitude_entrada = Entry(textvariable=Magnitude,
font=("Arial", "12", "bold"),
bg="white", fg="blue", justify='center')
Magnitude_entrada.place(relx=0.6, rely=0.21, relwidth=0.3) # Associar a tecla Enter para ativar a função app
Magnitude_entrada.bind("<Return>", app) # Botões
but1 = Button(text="Classificar", bd=2, bg='#107db2', fg='white',
font=('verdana', 12, 'bold'), command=app)
but1.place(relx=0.1, rely=0.33, 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.33, 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.33, relwidth=0.25, relheight=0.1) # Resultados
Classificação = Label(text="Classificação:",
font=("Arial", 18, "bold"), bg="#103030", fg="#49e3e3")
Classificação.place(relx=0.08, rely=0.47, relwidth=0.28, relheight=0.15) Classificação_resultado = Label(text="",
font=("Arial", 18, "bold"), bg="#103030", fg="#49e3e3", justify='center')
Classificação_resultado.place(relx=0.38, rely=0.48, relwidth=0.5, relheight=0.1) Descrição = Label(text="Descrição:",
font=("Arial", 18, "bold"), bg="#103030", fg="#49e3e3")
Descrição.place(relx=0.08, rely=0.7, relwidth=0.28, relheight=0.15) # Ajuste a largura para permitir que o texto seja quebrado e alinhado corretamente
# Aumentei o wraplength para 500 para dar mais espaço para o texto
Descrição_resultado = Label(text="",
font=("Arial", 18, "bold"), bg="#103030", fg="#49e3e3", justify='left', wraplength=500)
Descrição_resultado.place(relx=0.38, rely=0.71, relwidth=0.5, relheight=0.25) root.mainloop()
0