Bueno Señores, de nuevo de regreso, me desaparezco por mucho
tiempo aveces, ¿verdad?, bueno... hoy les quiero presentar una pequeña
aplicación para hacer sumas, restas, multiplicaciones y divisiones. Si otra vez
una calculadora, lo siento, no se me ocurre otra cosa, pero siempre hago una
cuando hago uso de un lenguaje de programación que desconozco, es la mejor
forma de experimentar. Si ya visitaste mis post anteriores has de preguntar:
¿Otra Calculadora en Python? jeje bueno la respuesta es si, pero en esta ocasión vamos
a usar un GUI.
GUI son las siglas de interfaz gráfica de usuario. Son
herramientas para crear interfaces gráficas, esto es, componentes gráficos con
los cuales el usuario interacciona con la aplicación.
En mi caso les hablare de Tkinter: Es
un binding de la biblioteca gráfica Tcl/Tk para
el lenguaje de programación Python. Se considera un estándar para
la interfaz gráfica de usuario (GUI) para Python y es el que viene
por defecto con la instalación para Microsoft Windows.
Si a continuación mi ejemplo no te gusta y dices que Tkinter no es lo tuyo existen más alternativas disponibles como wxPython, PyQt y PyGTK que cumplen con todos los estándares de componente visual.
[Algunas de las definiciones anteriores fueron tomadas de
nuestra amiga Wikipedia]
Cuidado en versiones como Python 2.7 es Tkinter en la versión 3 se usa tkinter [Minúsculas]
En el ejemplo siguiente hago uso de 3 Widgets, así se le llaman a los controles que nosotros conocemos en otros lenguajes como botones, cajas de texto, etc.
- Label: Etiquetas
- Button: Botones
- Entry: Cajas de texto [Existe un elemento Text pero no es precisamente el que nosotros imaginamos]
Ahora si, aquí mi código, creo que no será necesaria una explicación, está muy fácil de entender, aunque para reforzar checa los comentarios:
Una captura :D
Si gustas aprender más acerca de los Widgets te recomiendo esta web: Python_gui_programming
Te deseo un excelente día y espero mi publicación te sea de utilidad, no olvides comentar tus dudas, regaños u opiniones, +1 o like :P
13 comentarios:
Write comentariosTengo una duda, en la division: cuando la respuesta es inderteminada de que manera puedo hacer para que salga un aviso diciendo "no se puede dividir" o algo por el estilo (esto sucede cuando A/B si B = 0)
ResponderEliminarSe me ocurre que podría haber una comparación del valor de B antes de calcular, si vale 0, se puede mostrar un aviso en una etiqueta previamente inserta sin texto avisando de dicho error, por el momento no te puedo decir el código exacto para realizar esta validación debido al poco conocimiento y actualización que tengo de este lenguaje.
EliminarYa vi, es solo comparar n2 con 0 y si el resultado es true mandar un mensaje como este: tkMessageBox.showinfo("Error","No se puede dividir entre 0") si es false continuar a realizar la operación aritmética.
EliminarEs bastante simple, sigue aprendiendo a ver si puedes hacer una calculadora al uso
ResponderEliminarya me descargue python 2.7.2 en windows 7 , pero los códigos que tu me das , no se que hacer , osea los copio y pego todo? y le doy enter? y como se hace para que salga esa ventanita de la minicalculadora , por fa ayudenme...!!!
ResponderEliminarDebes instalar un IDE (Ambiente de desarrollo integrado). Yo justo ahora uso Pycharm. Puedes ir a google y poner Pycharm y descargarlo, luego de ahi si podrás ejecutar el programa.
EliminarTe felicito
ResponderEliminar+100 lince uwu
Por favor tengo un problema, me da un error en el import tkMessageBox, no se si sea por la version de python, gracias
ResponderEliminarLo correcto seria: import tkinter.messagebox
EliminarYo tenia el mismo error, espero te sirva ��
porfas un ejemplo cuando elresultado te vota en la ventana mismo
ResponderEliminarme podrían ayudar con este codigo por favor, es en la parte de capturar el segundo numero, ya que me dice que no es posible llamar la funcion "click()" a la funcion "resul()"
ResponderEliminarahi esta la parte mas importante del codigo
gracias
#-*- coding: utf-8 -*-
'''
Created on 9/08/2016
@author: mel
'''
from tkinter import *
import math
from test.test_math import math_testcases
from mailcap import show
from tkinter.messagebox import showinfo
from math import sqrt
import types
if __name__ == '__main__':
pass
global num1,num2
#organizo la ventana principal
v0 = Tk() # Tk() Es la ventana principal
v0.config(bg="white") # Le da color al fondo
v0.geometry("300x300") # Cambia el tamaño de la ventana
v0.title("Calculadora")
v0.resizable(False, False)
v0.config(bg="black") # Le da color al fondo
b=0
resul=0
def sumar():
b=1
return True
def restar():
b=2
return True
def div():
b=3
return True
def mult():
b=4
return True
def raiz():
b=5
return True
def ejecutar(f):
v0.after(200,f)
#funciones para tomar los clicks de cada número
def click0():
b=entrada.get()
entrada.set(str(b)+"0")
def click1():
b=entrada.get()
entrada.set(b+"1")
def click2():
b=entrada.get()
entrada.set(b+"2")
def click3():
b=entrada.get()
entrada.set(b+"3")
def click4():
b=entrada.get()
entrada.set(b+"4")
def click5():
b=entrada.get()
entrada.set(b+"5")
def click6():
b=entrada.get()
entrada.set(b+"6")
def click7():
b=entrada.get()
entrada.set(b+"7")
def click8():
b=entrada.get()
entrada.set(b+"8")
#showinfo("je","")
def click9():
b=entrada.get()
entrada.set(b+"9")
def click():
#if sumar() or restar() or div() or mult() or raiz() ==True:
num=(entrada.get())
showinfo("title", type(num))
entrada.set("")
#float(num1)
return num
def borrar():
entrada.set("")
def resul():
num1=click().num
num2=entrada.get()
resul=num1+num2
entrada.set("")
showinfo(num2, num1)
if b==1:
resul=num1+num2
entrada.set(str(resul))
showinfo(resul, resul)
if b==2:
resul=num1-num2
entrada.set(str(resul))
if b==3:
resul=num1/num2
entrada.set(str(resul))
if b==4:
resul=num1*num2
entrada.set(str(resul))
if b==5:
resul=sqrt(num2)
entrada.set(str(resul))
#creo los botones y tamaños
b0=Button(v0,text="0",width=15,command=click0)
b1=Button(v0,text="1",width=6,command=click1)
b2=Button(v0,text="2",width=6,command=click2)
b3=Button(v0,text="3",width=6,command=click3)
b4=Button(v0,text="4",width=6,command=click4)
b5=Button(v0,text="5",width=6,command=click5)
b6=Button(v0,text="6",width=6,command=click6)
b7=Button(v0,text="7",width=6,command=click7)
b8=Button(v0,text="8",width=6,command=click8)
b9=Button(v0,text="9",width=6,command=click9)
suma=Button(v0,text="+",width=6,command=sumar and click)
resta=Button(v0,text="-",width=6,command=restar and click)
mult=Button(v0,text="*",width=6,command=mult and click)
div=Button(v0,text="/",width=6,command=div and click)
raiz=Button(v0,text="√",width=6,command=raiz and click)
igual=Button(v0,text="=",width=6,command=resul)
punto=Button(v0,text=".",width=6)
borrar=Button(v0,text="C",width=15,command=borrar)
#caja de texto que recibe los números
entrada =StringVar()
a=Entry(v0, textvar=entrada,width=40)
v0.mainloop()
hi
ResponderEliminarLanza el siguiente error:
ResponderEliminarTraceback (most recent call last):
File "C:/Users/ruiz_/Documents/Python38/Calculadora_Basica.py", line 6, in
import tkMessageBox
ModuleNotFoundError: No module named 'tkMessageBox'