Mundo em Python

Contador de Moedas

from tkinter import *
root = Tk()
root.geometry("400x400")
root.resizable(0, 0)
root.config(bg="#0b7599")
root.title("Contador de Moedas")
def app():
vm = Valor_Moeda.get()
qm = quantidade_Moeda.get()
valor_total = vm*qm
mensagem = f'O valor total é de {valor_total}.'
resultado.set(mensagem)
def limpar():
quantidade_Moeda_entrada.delete(0, END)
Valor_Moeda_entrada.delete(0, END)
resultado.set("")
titulo = Label(text="Contador de Moedas",
font=("Arial", "27", "bold"),bg="#0b7599",fg="#cbeaf5")
titulo.place(relx=0.05, rely=0.05)
texto_sub1 = Label(text="Valor da Moeda: ",
font=("Arial", "15", "bold"),bg="#0b7599",fg="#cbeaf5")
texto_sub1.place(relx=0.15, rely=0.3) texto_sub2 = Label(text="Quantidade de Moeda: ",
font=("Arial", "15", "bold"),bg="#0b7599",fg="#cbeaf5")
texto_sub2.place(relx=0.01, rely=0.5) Valor_Moeda = DoubleVar()
Valor_Moeda_entrada = Entry(textvariable=Valor_Moeda,
font=("Arial", "12", "bold"),
bg="white", fg="blue", justify='center')
Valor_Moeda_entrada.place(relx=0.6, rely=0.3, relwidth=0.3) quantidade_Moeda = IntVar()
quantidade_Moeda_entrada = Entry(textvariable=quantidade_Moeda,
font=("Arial", "12", "bold"),
bg="white", fg="blue", justify='center')
quantidade_Moeda_entrada.place(relx=0.6, rely=0.5, relwidth=0.3)
but1 = Button(text="Verificar", bd=2, bg='#107db2', fg='white',
font=('verdana', 12, 'bold'), command=app)
but1.place(relx=0.05, 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.35, 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.65, rely=0.65, relwidth=0.25, relheight=0.1)
resultado = StringVar()
resultado_texto = Label(textvariable=resultado,
font=("Arial", 12, "bold"), bg="#cfe2f3")
resultado_texto.place(relx=0.05, rely=0.8, relwidth=0.9,relheight=0.15) root.mainloop()

# Outra Versão


import tkinter as tk
from functools import partial # Variável global para armazenar o tipo de moeda selecionada
tipo_moeda = "1 Cêntimo"


# Função para armazenar o tipo de moeda selecionada
def armazenar_tipo_moeda(sel_moeda):
global tipo_moeda
tipo_moeda = sel_moeda
# Função para calcular o resultado com base na quantidade de moedas e no tipo selecionado
def calcular_resultado(rotulo_resultado, entrada_quantidade):
quantidade = entrada_quantidade.get()
# Verifica se o campo de entrada não está vazio
if quantidade:
try:
# Tenta converter a quantidade para um número de ponto flutuante
quantidade_float = float(quantidade)
if tipo_moeda == '1 Cêntimo':
total = round(quantidade_float * 0.01, 2)
elif tipo_moeda == '2 Cêntimos':
total = round(quantidade_float * 0.02, 2)
elif tipo_moeda == '5 Cêntimos':
total = round(quantidade_float * 0.05, 2)
elif tipo_moeda == '10 Cêntimos':
total = round(quantidade_float * 0.1, 2)
elif tipo_moeda == '20 Cêntimos':
total = round(quantidade_float * 0.2, 2)
elif tipo_moeda == '50 Cêntimos':
total = round(quantidade_float * 0.5, 2)
elif tipo_moeda == '1 Euro':
total = round(quantidade_float * 1, 2)
elif tipo_moeda == '2 Euros':
total = round(quantidade_float * 2, 2) # Exibe o resultado formatado
if total == 0.01:
rotulo_resultado.config(text="0.01 Cêntimo")
elif total < 1:
rotulo_resultado.config(text="{:.2f} Cêntimos".format(total * 100))
elif total == 1:
rotulo_resultado.config(text="1 Euro")
else:
rotulo_resultado.config(text="{:.2f} Euros".format(total))
except ValueError:
# Caso ocorra um erro ao converter para float, exibe uma mensagem de erro
rotulo_resultado.config(text="Erro: Insira um número válido")
else:
# Se o campo de entrada estiver vazio, exibe uma mensagem de erro
rotulo_resultado.config(text="Erro: Insira uma quantidade")
# Configuração da janela principal
root = tk.Tk()
root.geometry('400x200')
root.title('Contador de Moeda')
root.configure(background='#09A3BA')
root.resizable(width=False, height=False)
root.grid_columnconfigure(1, weight=1)
root.grid_rowconfigure(0, weight=1) # Variável de entrada para a quantidade de moedas
entrada_quantidade = tk.StringVar()
# Variável de seleção para o tipo de moeda
var = tk.StringVar() # Rótulo do título
titulo = tk.Label(root, text="Contador de Moeda", background='#09A3BA',
foreground="#FFFFFF", font=("Arial", "18", "bold"))
titulo.place(relx=0.2, rely=0.05) # Rótulo e entrada para a quantidade de moedas
rotulo_quantidade = tk.Label(root, text="Quantidade de Moedas:", background='#09A3BA',
foreground="#FFFFFF", font=("Arial", "12", "bold"))
entrada_quantidade_entry = tk.Entry(root, textvariable=entrada_quantidade)
rotulo_quantidade.place(relx=0.05, rely=0.3)
entrada_quantidade_entry.place(relx=0.53, rely=0.3) # Rótulo para exibir o resultado
rotulo_resultado = tk.Label(root, background='#09A3BA', foreground="#FFFFFF")
rotulo_resultado.grid(row=3, columnspan=4) # Lista de opções para o tipo de moeda
opcoes_moeda = ["1 Cêntimo", "2 Cêntimos", "5 Cêntimos", "10 Cêntimos",
"20 Cêntimos", "50 Cêntimos", "1 Euro", "2 Euros"]
# Dropdown para selecionar o tipo de moeda
dropdown = tk.OptionMenu(root, var, *opcoes_moeda, command=armazenar_tipo_moeda)
var.set(opcoes_moeda[0])
dropdown.place(relx=0.4, rely=0.48)
dropdown.config(background='#09A3BA', foreground="#FFFFFF", font=("Arial", "13", "bold"))
dropdown["menu"].config(background='#09A3BA', foreground="#FFFFFF", font=("Arial", "15", "bold")) # Botão para calcular o resultado
calcular_resultado = partial(calcular_resultado, rotulo_resultado, entrada_quantidade)
botao_resultado = tk.Button(root, text="Mostrar o Total", command=calcular_resultado,
background='#09A3BA',
foreground="#FFFFFF", font=("Arial", "12", "bold"))
botao_resultado.place(relx=0.35, rely=0.7) # Iniciar a aplicação
root.mainloop()

 
0