from tkinter import *
class Tooltip:
def __init__(self, widget, text):
self.widget = widget
self.text = text
self.tooltip_window = None
self.widget.bind("<Enter>", self.show_tooltip)
self.widget.bind("<Leave>", self.hide_tooltip)
def show_tooltip(self, event=None):
if self.tooltip_window is not None:
return
x, y, _, _ = self.widget.bbox("insert")
x += self.widget.winfo_rootx() + 25
y += self.widget.winfo_rooty() + 25
self.tooltip_window = Toplevel(self.widget)
self.tooltip_window.wm_overrideredirect(True)
self.tooltip_window.wm_geometry(f"+{x}+{y}")
label = Label(self.tooltip_window, text=self.text, background="lightyellow", borderwidth=1, relief="solid")
label.pack()
def hide_tooltip(self, event=None):
if self.tooltip_window:
self.tooltip_window.destroy()
self.tooltip_window = None
# Criação da janela principal
root = Tk()
root.geometry("700x500")
root.resizable(0, 0)
root.config(bg="#103030")
root.title("Valor do Jogador")
# Título
titulo = Label(text="Valor do Jogador",
font=("Arial", "28", "bold"), bg="#103030", fg="#49e3e3")
titulo.place(relx=0.25, rely=0.05)
# Rótulos de entrada
texto_sub1 = Label(text="Golos marcados na última temporada :",
font=("Arial", "16", "bold"), bg="#103030", fg="#49e3e3")
texto_sub1.place(relx=0.05, rely=0.25)
texto_sub2 = Label(text="Assistências na última temporada:",
font=("Arial", "16", "bold"), bg="#103030", fg="#49e3e3")
texto_sub2.place(relx=0.05, rely=0.35)
texto_sub3 = Label(text="Multiplicador de mercado:",
font=("Arial", "16", "bold"), bg="#103030", fg="#49e3e3")
texto_sub3.place(relx=0.05, rely=0.45)
tooltip = Tooltip(texto_sub3, "Multiplicador de mercado (pode variar dependendo da liga, posição e procura)")
texto_sub4 = Label(text="Potencial do jogador:",
font=("Arial", "16", "bold"), bg="#103030", fg="#49e3e3")
texto_sub4.place(relx=0.05, rely=0.55)
tooltip2 = Tooltip(texto_sub4, "Potencial do jogador (classificado de 1 a 10, onde 10 é o mais alto)")
# Entradas de texto
Golos_marcados = StringVar()
Golos_marcados_entrada = Entry(textvariable=Golos_marcados,
font=("Arial", "12", "bold"),
bg="white", fg="blue", justify='center')
Golos_marcados_entrada.place(relx=0.65, rely=0.25, relwidth=0.25)
Golos_marcados_entrada.focus()
Assistências = StringVar()
Assistências_entrada = Entry(textvariable=Assistências,
font=("Arial", "12", "bold"),
bg="white", fg="blue", justify='center')
Assistências_entrada.place(relx=0.65, rely=0.35, relwidth=0.25)
Multiplicador_mercado = StringVar()
Multiplicador_mercado_entrada = Entry(textvariable=Multiplicador_mercado,
font=("Arial", "12", "bold"),
bg="white", fg="blue", justify='center')
Multiplicador_mercado_entrada.place(relx=0.65, rely=0.45, relwidth=0.25)
Potencial_jogador = StringVar()
Potencial_jogador_entrada = Entry(textvariable=Potencial_jogador,
font=("Arial", "12", "bold"),
bg="white", fg="blue", justify='center')
Potencial_jogador_entrada.place(relx=0.65, rely=0.56, relwidth=0.25)
def limpar():
Potencial_jogador_entrada.delete(0, END)
Multiplicador_mercado_entrada.delete(0, END)
Assistências_entrada.delete(0, END)
Golos_marcados_entrada.delete(0, END)
resultado_texto.config(text="")
def app(event=None): # Adicione 'event' como parâmetro
try:
P = int(Potencial_jogador.get())
if not (1 <= P <= 10):
resultado_texto.config(text="Potencial deve estar entre 1 e 10!")
return
M = float(Multiplicador_mercado.get())
A = int(Assistências.get())
G = int(Golos_marcados.get())
# Calculo do Valor do Jogador
Valor_Jogador = (G + A) * M * P
resultado_texto.config(text=f"O Valor do Jogador é de € {Valor_Jogador:.2f}")
except ValueError:
resultado_texto.config(text="Valor digitado inválido!")
Golos_marcados_entrada.bind("<Return>", app) # Adicionando a tecla Enter
Assistências_entrada.bind("<Return>", app) # Adicionando a tecla Enter
Multiplicador_mercado_entrada.bind("<Return>", app) # Adicionando a tecla Enter
Potencial_jogador_entrada.bind("<Return>", app) # Adicionando a tecla Enter
# Botões
but1 = Button(text="Calcular", bd=2, bg='#107db2', fg='white',
font=('verdana', 12, 'bold'), command=app)
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)
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)
root.mainloop()
Comentários
Enviar um comentário