from tkinter import *
root = Tk()
root.geometry("400x500")
root.resizable(0, 0)
root.config(bg="#1c4f61")
root.title("Calculadora Simples ")
titulo = Label(text="Calculadora Simples",
font=("Arial", "28", "bold"),bg="#1c4f61",fg="#d9ead3")
titulo.place(relx=0.05, rely=0.05)
texto_sub1 = Label(text="Número 1:",
font=("Arial", "15", "bold"),bg="#1c4f61",fg="#d9ead3")
texto_sub1.place(relx=0.2, rely=0.25) texto_sub2= Label(text="Número 2:",
font=("Arial", "15", "bold"),bg="#1c4f61",fg="#d9ead3")
texto_sub2.place(relx=0.2, rely=0.35)
numero1 = DoubleVar()
numero1_entrada = Entry(textvariable=numero1,
font=("Arial", "12", "bold"),
bg="white", fg="blue", justify='center')
numero1_entrada.place(relx=0.5, rely=0.25, relwidth=0.3) numero2 = DoubleVar()
numero2_entrada = Entry(textvariable=numero2,
font=("Arial", "12", "bold"),
bg="white", fg="blue", justify='center')
numero2_entrada.place(relx=0.5, rely=0.35, relwidth=0.3)
def limpar():
numero2_entrada.delete(0, END)
numero1_entrada.delete(0, END)
resultado.set("")
def soma ():
n1 = numero1.get()
n2 = numero2.get()
soma_final = n1 + n2
resultado.set(soma_final) def substracao():
n1 = numero1.get()
n2 = numero2.get()
sub_final = n1 - n2
resultado.set(sub_final)
def multplicacao ():
try:
n1 = numero1.get()
n2 = numero2.get()
if n1 != "" and n2 != "":
n1 = float(n1)
n2 = float(n2)
mult_final = n1 * n2
resultado.set(mult_final)
else:
resultado.set("Erro: Preencha ambos os campos")
except ValueError:
resultado.set("Erro: Insira números válidos") def div():
try:
n1 = numero1.get()
n2 = numero2.get() # Verifica se ambos os campos estão preenchidos
if n1 != "" and n2 != "":
n1 = float(n1)
n2 = float(n2) # Verifica se o segundo número não é zero
if n2 != 0:
div_final = round((n1 / n2), 2)
resultado.set(div_final)
else:
resultado.set("Erro: Divisão por zero")
else:
resultado.set("Erro: Preencha ambos os campos")
except ValueError:
resultado.set("Erro: Insira números válidos") def resto():
try:
n1 = numero1.get()
n2 = numero2.get() # Verifica se ambos os campos estão preenchidos
if n1 != "" and n2 != "":
n1 = float(n1)
n2 = float(n2) # Verifica se o segundo número não é zero
if n2 != 0:
resto_final = n1 % n2
resultado.set(resto_final)
else:
resultado.set("Erro: Divisão por zero")
else:
resultado.set("Erro: Preencha ambos os campos")
except ValueError:
resultado.set("Erro: Insira números válidos") but_soma = Button(text="+", bd=2, bg='#107db2', fg='white',
font=('verdana', 12, 'bold'), command=soma)
but_soma.place(relx=0.05, rely=0.5, relwidth=0.15, relheight=0.1)
but_subtração = Button(text="-", bd=2, bg='#107db2', fg='white',
font=('verdana', 12, 'bold'), command=substracao)
but_subtração.place(relx=0.23, rely=0.5, relwidth=0.15, relheight=0.1) but_mult = Button(text="x", bd=2, bg='#107db2', fg='white',
font=('verdana', 12, 'bold'), command=multplicacao)
but_mult.place(relx=0.4, rely=0.5, relwidth=0.15, relheight=0.1)
but_div = Button(text="/", bd=2, bg='#107db2', fg='white',
font=('verdana', 12, 'bold'), command=div)
but_div.place(relx=0.58, rely=0.5, relwidth=0.15, relheight=0.1) but_resto = Button(text="%", bd=2, bg='#107db2', fg='white',
font=('verdana', 12, 'bold'), command=resto)
but_resto.place(relx=0.77, rely=0.5, relwidth=0.15, 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.15, 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.55, 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
from tkinter import * root = Tk()
root.geometry("500x500")
root.resizable(0, 0)
root.config(bg="#103030")
root.title("Calculadora Básica") titulo = Label(text="Calculadora Básica",
font=("Arial", "28", "bold"), bg="#103030", fg="#49e3e3")
titulo.place(relx=0.1, rely=0.05) texto_sub1 = Label(text="Digite a operação (+, -, *, /) :",
font=("Arial", "15", "bold"), bg="#103030", fg="#49e3e3")
texto_sub1.place(relx=0.05, rely=0.25) texto_sub2 = Label(text="Número 1:",
font=("Arial", "18", "bold"), bg="#103030", fg="#49e3e3")
texto_sub2.place(relx=0.35, rely=0.4) texto_sub3 = Label(text="Número 2:",
font=("Arial", "18", "bold"), bg="#103030", fg="#49e3e3")
texto_sub3.place(relx=0.35, rely=0.55) operação = StringVar()
operação_entrada = Entry(textvariable=operação,
font=("Arial", "12", "bold"),
bg="white", fg="blue", justify='center')
operação_entrada.place(relx=0.65, rely=0.26, relwidth=0.2) Número1 = StringVar()
Número1_entrada = Entry(textvariable=Número1,
font=("Arial", "12", "bold"),
bg="white", fg="blue", justify='center')
Número1_entrada.place(relx=0.65, rely=0.41, relwidth=0.2) Número2 = StringVar()
Número2_entrada = Entry(textvariable=Número2,
font=("Arial", "12", "bold"),
bg="white", fg="blue", justify='center')
Número2_entrada.place(relx=0.65, rely=0.55, relwidth=0.2) def limpar():
Número2_entrada.delete(0, END)
Número1_entrada.delete(0, END)
operação_entrada.delete(0, END)
resultado_texto.config(text="") def app():
try:
número1 = float(Número1.get())
número2 = float(Número2.get())
operacao = operação.get() if operacao not in ["+", "-", "*", "/"]:
resultado_texto.config(text="Valor de operação digitado inválido!")
else:
if operacao == "+":
resultado = número1 + número2
elif operacao == "-":
resultado = número1 - número2
elif operacao == "*":
resultado = número1 * número2
elif operacao == "/":
if número2 == 0:
resultado_texto.config(text="Erro: Divisão por zero!")
return
resultado = número1 / número2 mensagem = f'Resultado: {round(resultado, 2)}'
resultado_texto.config(text=mensagem) except ValueError:
resultado_texto.config(text="Valor digitado inválido!") 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()
# Outra versão
from tkinter import *
import math root = Tk()
root.geometry("700x500")
root.resizable(0, 0)
root.config(bg="#103030")
root.title("Calculadora simples")
titulo = Label(
text="Calculadora simples",
font=("Arial", 28, "bold"),
bg="#103030",
fg="#49e3e3"
)
titulo.place(relx=0.25, rely=0.05)
texto_sub1 = Label(
text="Número 1:",
font=("Arial", 18, "bold"),
bg="#103030",
fg="#49e3e3"
)
texto_sub1.place(relx=0.2, rely=0.25) texto_sub2 = Label(
text="Número 2:",
font=("Arial", 18, "bold"),
bg="#103030",
fg="#49e3e3"
)
texto_sub2.place(relx=0.2, rely=0.4) Numero1 = StringVar()
Numero1_entrada = Entry(
textvariable=Numero1,
font=("Arial", 12, "bold"),
bg="white",
fg="blue",
justify='center'
)
Numero1_entrada.place(relx=0.55, rely=0.26, relwidth=0.35)
Numero1_entrada.focus() Numero2 = StringVar()
Numero2_entrada = Entry(
textvariable=Numero2,
font=("Arial", 12, "bold"),
bg="white",
fg="blue",
justify='center'
)
Numero2_entrada.place(relx=0.55, rely=0.41, relwidth=0.35)
def limpar():
Numero1_entrada.delete(0, END)
Numero2_entrada.delete(0, END)
resultado_texto.config(text="") def calcular(op):
try:
n1 = float(Numero1.get() or 0)
n2 = float(Numero2.get() or 0) if op == '+':
res = n1 + n2
elif op == '-':
res = n1 - n2
elif op == '*':
res = n1 * n2
elif op == '/':
if n2 == 0:
resultado_texto.config(text="Erro: divisão por zero!")
return
res = n1 / n2
elif op == 'pot':
res = n1 ** n2
elif op == 'raiz':
if n1 < 0:
resultado_texto.config(text="Erro: número negativo!")
return
res = math.sqrt(n1)
else:
res = "Operação inválida"
resultado_texto.config(text=f"Resultado: {res:.4f}")
except ValueError:
resultado_texto.config(text="Erro: insira números válidos!") botoes = [
('+', 0.15, 0.6),
('-', 0.3, 0.6),
('*', 0.45, 0.6),
('/', 0.6, 0.6),
('pot', 0.75, 0.6),
('raiz', 0.3, 0.7),
('Limpar', 0.55, 0.7)
] for texto, x, y in botoes:
if texto == 'Limpar':
Button(
text=texto,
font=("Arial", 12, "bold"),
bg="#49e3e3",
fg="#103030",
command=limpar
).place(relx=x, rely=y, relwidth=0.2, relheight=0.08)
else:
Button(
text=texto,
font=("Arial", 12, "bold"),
bg="#49e3e3",
fg="#103030",
command=lambda op=texto: calcular(op)
).place(relx=x, rely=y, relwidth=0.1, relheight=0.08) resultado_texto = Label(
text="",
font=("Arial", 18, "bold"),
bg="#103030",
fg="white"
)
resultado_texto.place(relx=0.25, rely=0.85) root.mainloop()