Programas que tenian errores y fueron corregidos:
#1 Programa que te pide tus datos basicos
from Tkinter import *
root = Tk()
root.title('formulario 1')
nombre_label = Label(root,text="Nombre :")
nombre_label.grid(row=1,column=1)
nombre_str = StringVar()
nombre_entry = Entry(root,textvariable=nombre_str)
nombre_entry.grid(row=1,column=2)
last_label= Label(root,text="Apellido : ")
last_label.grid(row=2,column=1)
last_str = StringVar()
last_entry = Entry(root,textvariable=last_str)
last_entry.grid(row=2,column=2)
mail_label = Label(root,text="Email : ")
mail_label.grid(row=3,column=1)
mail_str = StringVar()
mail_entry = Entry(root,textvariable=mail_str)
mail_entry.grid(row=3,column=2)
endfinish = Button(root,text="finalizar",relief=FLAT)
endfinish.grid(row=4,column=2)
root.mainloop()
caputura de la ejecucion:
#2 Programa que calcula el IMC de una persona
import sys
import Tkinter
from Tkinter import *
import tkMessageBox
def imc():
num1 = int(entrada_peso.get())
num2 = float(entrada_altura.get())
imc = (num1 / (num2*num2))
if imc == 0 or imc < 18:
tkMessageBox.showinfo("Resultado", "Peso bajo. Necesario valorar signos de desnutricion")
elif imc == 18 or imc < 25:
tkMessageBox.showinfo("Resultado", "Usted tiene un peso normal")
elif imc == 25 or imc < 27:
tkMessageBox.showinfo("Resultado", "Usted padece sobrepeso")
elif imc == 27 or imc < 30:
tkMessageBox.showinfo("Resultado", "Usted padece obesidad grado I")
elif imc == 30 or imc < 40:
tkMessageBox.showinfo("Resultado", "Usted padece de obesidad grado II")
else:
tkMessageBox.showinfo("Resultado", "Usted padece de obesidad morbida")
ventana=Tk()
ventana.title("Calculo de IMC")
ventana.geometry("400x200")
ventana.config(bg="rosybrown")
vp = Frame(ventana)
vp.grid(column=0, row=0, padx=(50, 50), pady=(10, 10)) #para posicionar cualquier objetovp.columnconfigure(0, weight=1)
vp.rowconfigure(0, weight=1)
peso = IntVar()
altura = float()
etiqueta_peso = Label(ventana, text='Peso(kg):', bg='ivory')
etiqueta_peso.grid(row=1, column=1, padx=(10, 10), pady=(10, 10), sticky=E)
entrada_peso = Entry(ventana, textvariable=peso)
entrada_peso.grid(row=1, column=2, padx=(10, 10), pady=(10, 10), sticky=E)
etiqueta_altura = Label(ventana, text='Altura(mts): ', bg='ivory')
etiqueta_altura.grid(row=2, column=1, padx=(10, 10), pady=(10, 10), sticky=E)
entrada_altura = Entry(ventana, textvariable=altura)
entrada_altura.grid(row=2, column=2, padx=(10, 10), pady=(10, 10), sticky=E)
bconv = Button(ventana, bg='plum', fg='white', text='Calcular IMC', width=10, height=1, command=imc)
bconv.grid(row=4, column=2, padx=(10, 10), pady=(10, 10))
ventana.mainloop()
captura de ejecucion:
#3 Programa que saca el signo zodiacal
#programa que saca el signo zodiacal
import sys
import Tkinter as tk
from Tkinter import *
import tkMessageBox
ventana=Tk()
ventana.title("Signo Zodiacal")
ventana.geometry("400x200")
ventana.config(bg="rosybrown")
vp = Frame(ventana)
vp.grid(column=0, row=0, padx=(50, 50), pady=(10, 10)) #para posicionar cualquier objetovp.columnconfigure(0, weight=1)
vp.rowconfigure(0, weight=1)
var = StringVar(ventana)
ver =StringVar(ventana)
var.set("Enero") # initial valuever = StringVar(ventana)
var.set("1") # initial value
etiqueta_mes = Label(ventana, text='Mes de nacimiento: ')
ent_mes = OptionMenu(ventana, var, "Enero", "Febrero", "Marzo", "Abril", "Mayo", "Junio", "Julio", "Agosto", "Septiembre", "Octubre", "Noviembre", "Diciembre", )
etiqueta_mes.grid(row=1, column=1, padx=(10, 10), pady=(10, 10), sticky=E)
ent_mes.grid(row=1, column=3)
etiqueta_dia = Label(ventana, text='Dia de nacimiento: ')
ent_dia = OptionMenu(ventana, ver, "1", "2", "3","4", "5", "6","7", "8", "9","10", "11", "12","13", "14", "15","16", "17", "18","19", "20", "21","22", "23", "24", "25", "26", "27", "28", "29", "30", "31")
etiqueta_dia.grid(row=4, column=1, padx=(10, 10), pady=(10, 10), sticky=E)
ent_dia.grid(row=4, column=3)
def signo():
month= str(var.get())
day= int(ver.get())
if month=="Marzo" and day>=21 or month=="Abril" and day<=20:
tkMessageBox.showinfo("Signo","Eres Aries")
elif month == "Abril" and day >= 21 or month == "Mayo" and day <= 21:
tkMessageBox.showinfo("Signo", "Eres Tauro")
elif month == "Mayo" and day >= 22 or month == "Junio" and day <= 21:
tkMessageBox.showinfo("Signo", "Eres Gemenis")
elif month=="Junio" and day>=22 or month=="Julio" and day<=22:
tkMessageBox.showinfo("Signo","Eres Cancer")
if month=="Julio" and day>=23 or month=="Agosto" and day<=23:
tkMessageBox.showinfo("Signo","Eres Leo")
if month=="Agosto" and day>=24 or month=="Septiembre" and day<=23:
tkMessageBox.showinfo("Signo","Eres Virgo")
if month=="Septiembre" and day>=24 or month=="Octubre" and day<=23:
tkMessageBox.showinfo("Signo","Eres Libra")
if month=="Octubre" and day>=24 or month=="Noviembre" and day<=22:
tkMessageBox.showinfo("Signo","Eres Escorpion")
if month=="Noviembre" and day>=23 or month=="Diciembre" and day<=21:
tkMessageBox.showinfo("Signo","Eres Sagitario")
if month=="Diciembre" and day>=22 or month=="Enero" and day<=20:
tkMessageBox.showinfo("Signo","Eres Capricornio")
if month=="Enero" and day>=21 or month=="Febrero" and day<=18:
tkMessageBox.showinfo("Signo","Eres Acuario")
if month=="Febrero" and day>=19 or month=="Marzo" and day<=20:
tkMessageBox.showinfo("Signo","Eres Piscis")
boton = Button(ventana, text='Signo', command=signo, width=20)
boton.grid(row=5, column=1, padx=(10, 10), pady=(10, 10), sticky=E)
ventana.mainloop()
captura de ejecucion
#4 Programa que cuenta billetes,monedas
from Tkinter import *
import tkMessageBox
def SumMul():
try:
_e0= int(v0.get())
_e0=_e0*.50
_e1 = int(v1.get())
_e1 = _e1 * 1
_e2 = int(v2.get())
_e2 = _e2 * 2
_e3 = int(v3.get())
_e3 = _e3 * 5
_e4 = int(v4.get())
_e4 = _e4 * 10
_e5 = int(v5.get())
_e5 = _e5 * 20
_e6 = int(v6.get())
_e6 = _e6 * 50
_e7 = int(v7.get())
_e7 = _e7 * 100
_e8 = int(v8.get())
_e8 = _e8 * 200
_e9 = int(v9.get())
_e9 = _e9 * 500
_e10= _e0 + _e1 + _e2 + _e3 + _e4 + _e5 + _e6 + _e7 + _e8 + _e9
tkMessageBox.showinfo("El resultado es", _e10)
except ValueError:
etiqueta=Label(text="Introduce un numero entero")
v=Tk()
v.title("")
v.geometry("200x350")
vp = Frame(v)
vp.grid(column=0, row=0, padx=(50,50), pady=(10,10))
vp.columnconfigure(0, weight=1)
vp.rowconfigure(0, weight =1)
ET0=Label(vp,text="MONEDAS")
ET0.grid(column=2, row=1)
e0=Label(vp,text="0.50")
e0.grid(column=1, row=3)
e1=Label(vp,text="1.00")
e1.grid(column=1, row=4)
e2=Label(vp,text="2.00")
e2.grid(column=1, row=5)
e3=Label(vp,text="5.00")
e3.grid(column=1, row=6)
e4=Label(vp,text="10.00")
e4.grid(column=1, row=7)
v0 = Entry(vp, width=5, textvariable=e0)
v0.grid(row=3, column=2)
v1 = Entry(vp, width=5, textvariable=e1)
v1.grid(row=4, column=2)
v2 = Entry(vp, width=5, textvariable=e2)
v2.grid(row=5, column=2)
v3 = Entry(vp, width=5, textvariable=e3)
v3.grid(row=6, column=2)
v4 = Entry(vp, width=5, textvariable=e4)
v4.grid(row=7, column=2)
ET1=Label(vp,text="BILLETES")
ET1.grid(column=2, row=9)
e5=Label(vp,text="20.00")
e5.grid(column=1, row=11)
e6=Label(vp,text="50.00")
e6.grid(column=1, row=12)
e7=Label(vp,text="100.00")
e7.grid(column=1, row=13)
e8=Label(vp,text="200.00")
e8.grid(column=1, row=14)
e9=Label(vp,text="500.00")
e9.grid(column=1, row=15)
v5 = Entry(vp, width=5, textvariable=e5)
v5.grid(row=11, column=2)
v6 = Entry(vp, width=5, textvariable=e6)
v6.grid(row=12, column=2)
v7 = Entry(vp, width=5, textvariable=e7)
v7.grid(row=13, column=2)
v8 = Entry(vp, width=5, textvariable=e8)
v8.grid(row=14, column=2)
v9 = Entry(vp, width=5, textvariable=e9)
v9.grid(row=15, column=2)
b = Button(vp, text="TOTAL", command=SumMul)
b.grid(row=17, column=2, padx=(20, 20), pady=(20, 20))
v.mainloop()
captura de ejecucion:
#5 Programa que agrega peliculas a una lista y da la opcion de guardarlas
from ttk import *
from tkMessageBox import askyesno,showinfo,showerror;
from Tkinter import *
#en el import, solo estoy pidiendo importar los elementos que vamos a usar, para no usar el * sin necesidad de traer mas elementos
def AddEntryMovie():
Movie = CatchMovie.get()
if (CatchMovie.get()==""):
CatchMovie.config(bg="red")
showerror("What Movie it is?", "Por favor ingresa una pelicula! no dejes el campo en blanco!")
CatchMovie.config(bg="white")
if (Classes.get()==""):
#otra pequeña "excepcion" por si la clasificación de la pelicula no tiene seleccionada una clasificacion
showerror("What Movie it is?","Por favor selecciona una clasificacion!")
if (askyesno("Are you sure?", "Deseas añadir esta pelicula: \n\""+Movie+"\"\nA la lista de peliculas?")==True):
values = list(MoviesOnList["values"])
#se crea dentro de la funcion la Variable "values" que sera una lista de los valores que se encuentran en la lista despegable
MoviesOnList["values"] = values + [Movie]
#de la lista despegalble agregamos el nuevo valor que esta en nuestro campo de texto, para esto debemos ponerlo entre # [] para que se interprete como el valor de una lista y pueda sumarse a la lista despegable de peliculas
Classifications.insert(i,Classes.get())
#añade la clasificiación a una lista, para asi tenerla disponible en la Lista Despegable de Peliculas disponibles
Mov.insert(i,Movie)
i+1
CatchMovie.delete(0, END)
#ya lo hemos visto antes pero lo explicare aun asi, .delete(0, END) borra el texto dentro del Entry
CatchMovie.insert(0, "")
#Aqui es casi lo mismo, pero deja el campo Vacio y usable, tambien para evitar errores de captura
Classes.set("")
#Reinicia la Lista Despegable de las clasificaciones
showinfo("Exito!","Has anadido: \""+Movie+"\" A la lista de Peliculas")
else:
showinfo("Guess No","La Pelicula: "+Movie+" No sera anadida")
def firstDone():
if (askyesno("Are you sure?","ADVERTENCIA: ESTA ACCION NO PUEDE SER DESHECHA" "\nSi de verdad ya terminaste te agregar peliculas, prosigue, si no, DETENTE!")==True):
CatchMovie.config(state="disable")
Classes.config(state="disable")
AddMov.config(state="disable")
Done.config(state="disable")
#tambien se habia visto antes, pero explicare aun asi, el 'state' "disable" deshabilita el componente del frame app.geometry("600x300")
#se puede cambiar la dimension de una ventana, aunque se haya establecido un tamaño, esto nos permite controlar la ventana y los componentes a mostrar
MovietoRent.grid()
MoviesOnList.grid()
ClassifiedAs.grid()
AskRent.grid()
Days4Rent.grid()
Rent.grid()
#simplemente con .grid() vuelvo a colocar en su respectivo lugar, los elementos que no son visibles para el usuario, ocultos con '.grid_remove()'
showinfo("","Puedes seguir agregando peliculas si gustas!")
def MovieSel(self):
ClassifiedAs.config(state="normal")
#para que un Entry pueda mostrar un texto, es necesario que este en un estado normal (state="normal")
ClassifiedAs.delete(0, END)
ClassifiedAs.insert(0, Classifications.__getitem__(Mov.index(MoviesOnList.get())))
#aqui se hace uso de la Lista [] y el atributo "__getitem__()" para obtener lo que este en la lista, para ello #es necesario poner un indice numerico, asi que utilizando ".index()" puedo llamar solo el indice (numero en la lista) #y .__getitem__() obtendra el objeto que este en ese indice de la lista, para asi poder mostrar la clasificación correecta ClassifiedAs.config(state="readonly")
#al cambiar el estado a "Solo Lectura" (state="readonly") el Entry solo mostrara Texto, pero no permitira la entrada de datos o textos
def RentAMovie():
if (askyesno("You ready?","Deseas Rentar la pelicula: "+MoviesOnList.get()+
"\n por "+Days4Rent.get()+" Dia/s?")==True):
if (ClassifiedAs.get()=="Adultos"):
if(askyesno("Age Issue","Eres Mayor de Edad?")==True):
showinfo("Ask for: ","Presente su Identificación")
else:
showerror("Get outta here","NO SE RENTAN PELICULAS A MENORES")
else:
showinfo("Have a nice day!","Disfruta de tu pelicula! \nQue tengas un Buen dia :)")
else:
showinfo("Ok?","De acuerdo, revisa tus opciones entonces :)")
app = Tk()
app.geometry("600x120")
app.title("Lista de Peliculas")
vp = Frame(app)
vp.grid(column=0,row=0,padx=(30,30), pady=(20,20))
vp.rowconfigure(0, weight=1)
vp.columnconfigure(0, weight=1)
Classified = Label(vp, text="Clasificación")
Classified.grid(column=2, row=1, padx=(10,10), pady=(10,10))
AskMov = Label(vp, text="Ingrese una Pelicula: ")
AskMov.grid(column=1, row=1, padx=(10,10), pady=(10,10), sticky=W)
cMovie=StringVar
CatchMovie = Entry(vp, textvariable=cMovie, width=35)
CatchMovie.grid(column=1, row=2, padx=(10,10), pady=(10,10))
AddMov = Button(vp, text="Añadir", command=AddEntryMovie)
AddMov.grid(column=3, row=2, padx=(10,10), pady=(10,10))
Done = Button(vp, text="Finalizar", command=firstDone)
Done.grid(column=4, row=2, padx=(10,10), pady=(10,10))
Classes = Combobox (vp, state="readonly")
Classes.grid(column=2, row=2, padx=(10,10), pady=(10,10))
Classes["values"]=["Para todas las Edades","Familiar","Mayores de 10","Adolescentes","Mayores de 15","Adultos"]
Separator(vp, orient=HORIZONTAL).grid(column=1,row=3,columnspan=4,sticky=W+E,pady=(10,10))
MovietoRent = Label(vp, text="Pelicula a Rentar: ")
MovietoRent.grid(column=1, row=4, padx=(10,10), pady=(30,10), stick=W)
MovietoRent.grid_remove()
MoviesOnList = Combobox (vp, state="readonly")
MoviesOnList.grid(column=1,row=5,padx=(10,10),pady=(10,10), sticky=W+E)
MoviesOnList.bind(MovieSel)
MoviesOnList.grid_remove()
ClassifiedAs = Entry (vp,state="readonly")
ClassifiedAs.grid(column=2, row=5, padx=(10,10), pady=(10,10), sticky=W+E)
ClassifiedAs.grid_remove()
AskRent = Label(vp, text="Dias\n a Rentar")
AskRent.grid(column=3, row=4, padx=(10,10), pady=(10,10))
AskRent.grid_remove()
Days4Rent = Spinbox(vp,width=5, from_=1, to=7)
Days4Rent.grid(column=3, row=5, padx=(10,10), pady=(10,10), sticky=N+S)
Days4Rent.grid_remove()
Rent = Button(vp, text="Rentar", command=RentAMovie)
Rent.grid(column=4, row=5, padx=(10,10), pady=(10,10))
Rent.grid_remove()
Classifications = []
Mov = []
i = int(0)
app.mainloop()
capturta de ejecucion:
# 6 Programa que calcula el interes anual de cierto monto y su ganancia
import sys
from Tkinter import *
import tkMessageBox
def interes():
v1 = int(ent1.get())
v2 = int(ent2.get())
v3 = int(ent3.get())
r = v1 * v2 / 100
g = (r * v3)
f = g + v1
print "Cuando pasen", v3, "anos, con un interes de", v2, " usted habra generado", f, "pesos"
v = Tk()
v.title("Interes")
v.geometry("400x250")
vp = Frame(v)
vp.grid(column=0, row=0, padx=(50, 50), pady=(10, 10))
vp.columnconfigure(0, weight=1)
vp.rowconfigure(0, weight=1)
e1 = Label(vp, text="Pesos:")
e1.grid(row=2, column=4, padx=(20, 20), pady=(20, 20))
e2 = Label(vp, text="Interes:")
e2.grid(row=3, column=4, padx=(20, 20), pady=(20, 20))
e3 = Label(vp, text="Anos:")
e3.grid(row=4, column=4, padx=(20, 20), pady=(20, 20))
val1 = ""
ent1 = Entry(vp, width=12, textvariable=val1)
ent1.grid(row=2, column=5)
val2 = ""
ent2 = Entry(vp, width=12, textvariable=val2)
ent2.grid(row=3, column=5)
val3 = ""
ent3 = Entry(vp, width=12, textvariable=val3)
ent3.grid(row=4, column=5)
b1 = Button(vp, text="Calcular", command=interes)
b1.grid(row=5, column=5, padx=(20, 20), pady=(20, 20))
v.mainloop()
Capturas de la ejecucion
#7 Programa que despliega una imagen y la oculta con un boton.
from Tkinter import *
ventana = Tk()
ventana.geometry('400x400')
ventana.config(bg="black")
ventana.title("Mostrando y ocultando un boton con una imagen")
def btn_hide():
if b1.winfo_ismapped():
b1.place_forget()
b2.configure(text="Mostrar carita", width=15)
else:
b1.place(x=70, y=50)
b2.configure(text="Ocultar carita", width=15)
imgBoton= PhotoImage(file="papelcpu.gif")
b1=Button(ventana, text="Boton 1", image=imgBoton, fg="black", width=100)
b1.place(x=90, y=50)
b2 =Button(ventana, text="Ocultar carita", command=btn_hide, fg="black", width=15)
b2.place(x=130, y=280)
ventana.mainloop()
ejecucion del programa:
#8 programa que muestra el calendario:
import calendar
import Tkinter as tk
import datetime
global ano,mes
# Obtenemos los valores del ano y mes a
mostrarano = datetime.date.today ().year
mes = datetime.date.today ().month
ano=datetime.date.today().year
def writeCalendar(ano,mes):
# Asignamos el ano y mes al calendario
str1 = calendar.month (ano, mes)
label1.configure (text=str1)
def mesAnterior():
global mes, ano
mes -= 1
if ano == 0:
mes = 12
ano -= 1
writeCalendar (ano, mes)
def mesSiguiente():
global mes,ano
mes += 1
if mes == 13:
mes = 1
ano += 1
writeCalendar (ano, mes)
root = tk.Tk ()
root.title ("Calendario")
# Lo posicionamos en un label
label1 = tk.Label (root, text="", font=('courier', 40, 'bold'), bg='white', justify=tk.LEFT)
label1.grid (row=1, column=1)
# ponemos los botones dentro un Frame
frame = tk.Frame (root, bd=5)
anterior = tk.Button (frame, text="Anterior", command=mesAnterior)
anterior.grid (row=1, column=1, sticky=tk.W)
siguiente = tk.Button (frame, text="Siguiente", command=mesSiguiente)
siguiente.grid (row=1, column=2)
frame.grid (row=2, column=1)
writeCalendar(ano,mes)
# ejecutamos el evento loop
root.mainloop ()
captura de ejecucion:
#9 Edad con un Spinbox
from Tkinter import *
import tkMessageBox
def CalcularEdad():
Valor = int(CajaEdad.get())
if (2018-Valor>=18):
tkMessageBox.showinfo("Felicidades", "Eres Mayor de Edad!")
elif(2018-Valor<=5):
tkMessageBox.showinfo("Eehhh?", "Como puedes tener menos de 5 y usar este programa")
elif((2018-Valor)>8 and (2018-Valor)<18 ayor="" botoncalcular.grid="" botoncalcular="Button(vp," cajaedad.grid="" cajaedad="Spinbox(vp," column="3," command="CalcularEdad)" de="" edad="" el="" estamos="" framevp.grid="" from_="1980," la="" lejate="" no="" objeto="" padx="(10,10)," pady="(10,10))" para="" posees="" pre="" preguntaredad.grid="" preguntaredad="Label(vp," row="1," seguir="" sticky="N+S)" suficiente="" text="Calcular!" tkmessagebox.showinfo="" to="2018,width=10)" un="" utilizando="" ventana.geometry="" ventana.mainloop="" ventana.title="" ventana="Tk()" vp.columnconfigure="" vp.grid="" vp.rowconfigure="" vp="Frame(ventana)" weigh="1)" weight="1)" x400="">
captura de ejecucion:18>
<18 ayor="" botoncalcular.grid="" botoncalcular="Button(vp," cajaedad.grid="" cajaedad="Spinbox(vp," column="3," command="CalcularEdad)" de="" edad="" el="" estamos="" framevp.grid="" from_="1980," la="" lejate="" no="" objeto="" padx="(10,10)," pady="(10,10))" para="" posees="" pre="" preguntaredad.grid="" preguntaredad="Label(vp," row="1," seguir="" sticky="N+S)" suficiente="" text="Calcular!" tkmessagebox.showinfo="" to="2018,width=10)" un="" utilizando="" ventana.geometry="" ventana.mainloop="" ventana.title="" ventana="Tk()" vp.columnconfigure="" vp.grid="" vp.rowconfigure="" vp="Frame(ventana)" weigh="1)" weight="1)" x400="">
18>
captura de ejecucion
Comentarios
Publicar un comentario