import tkinter as tk
from tkinter import messagebox
def call_convert(result_label1, result_label2, input_temp1, input_temp2, input_temp3):
try:
valor_conta = float(input_temp1.get())
percentual_gorjeta = float(input_temp2.get())
num_pessoas = int(input_temp3.get())
unit = var.get()
if unit == 'Bom':
percentual_gorjeta += 5
elif unit == 'Ruim':
percentual_gorjeta -= 5
gorjeta = valor_conta * percentual_gorjeta / 100
total_com_gorjeta = valor_conta + gorjeta
valor_por_pessoa = total_com_gorjeta / num_pessoas
mensagem = f"\nDetalhes da conta:\nValor da conta: {valor_conta:.2f} €\n" \
f"Gorjeta ({percentual_gorjeta}%): {gorjeta:.2f}€ \n" \
f"Total com gorjeta: {total_com_gorjeta:.2f}€\n"
if num_pessoas > 1:
mensagem += f"Valor por pessoa: ${valor_por_pessoa:.2f}\n"
result_label1.config(text=mensagem)
except ValueError:
messagebox.showerror("Erro", "Por favor, insira valores numéricos válidos.")
def store_temp(value):
pass # Função de espaço reservado, não é necessária para esta implementação
root = tk.Tk()
root.geometry('500x400')
root.title('Bem-vindo à Calculadora de Gorjeta')
root.configure(background='#09A3BA')
root.resizable(width=False, height=False)
root.grid_columnconfigure(1, weight=1)
root.grid_rowconfigure(0, weight=1)
numberInput1 = tk.StringVar()
numberInput2 = tk.StringVar()
numberInput3 = tk.StringVar()
var = tk.StringVar()
input_label = tk.Label(root, text="Valor Total da Conta", background='#09A3BA',
foreground="#FFFFFF", font=("Arial", "15", "bold"))
input_entry = tk.Entry(root, textvariable=numberInput1)
input_entry.focus()
input_label.place(relx=0.05, rely=0.1)
input_entry.place(relx=0.6, rely=0.12)
input_label2 = tk.Label(root, text="Percentual Gorjeta", background='#09A3BA',
foreground="#FFFFFF", font=("Arial", "15", "bold"))
input_entry2 = tk.Entry(root, textvariable=numberInput2)
input_label2.place(relx=0.05, rely=0.25)
input_entry2.place(relx=0.6, rely=0.28)
input_label3 = tk.Label(root, text="Número de pessoas", background='#09A3BA',
foreground="#FFFFFF", font=("Arial", "15", "bold"))
input_entry3 = tk.Entry(root, textvariable=numberInput3)
input_label3.place(relx=0.05, rely=0.4)
input_entry3.place(relx=0.6, rely=0.42)
result_label1 = tk.Label(root, background='#09A3BA', foreground="#FFFFFF",font=("Arial", "12", "bold"))
result_label1.place(relx=0.05, rely=0.7, relwidth=0.9)
dropDownList = ["Bom", "Regular", "Ruim"]
dropdown = tk.OptionMenu(root, var, *dropDownList, command=store_temp)
var.set(dropDownList[0])
dropdown.place(relx=0.35, rely=0.55)
dropdown.config(background='#09A3BA', foreground="#FFFFFF", font=("Arial", "15", "bold"))
dropdown["menu"].config(background='#09A3BA', foreground="#FFFFFF", font=("Arial", "15", "bold"))
# button click
result_button = tk.Button(root, text="Calcular",
command=lambda:
call_convert(result_label1, None, numberInput1, numberInput2, numberInput3),
background='#09A3BA', foreground="#FFFFFF", font=("Arial", "15", "bold"))
result_button.place(relx=0.35, rely=0.65)
root.mainloop()