#!/usr/bin/env python# -*- coding: utf-8 -*-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, "años, con un interes de", v2, " usted habrá 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="Años:") 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=val2) 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()
Programa que calcula intereses / Aportacion Luis Angel Alonso Rojas
Programa sobre Renta de Peliculas / Tkinter / Aportacion de Brandon asael Cerda
# -*- coding: utf-8 -*-from Tkinter import Label,Entry,Button,Tk,Frame,W,N,S,E,END,HORIZONTAL,Spinbox from ttk import Combobox,Separator from tkMessageBox import askyesno,showinfo,showerror; #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") #Una pequeña "excepcion" por si el campo de texto para ingresar la pelicula esta vacio
else: if (Classes.get()==""): #otra pequeña "excepcion" por si la clasificación de la pelicula no tiene seleccionada una clasificación
showerror("What Movie it is?","Por favor selecciona una clasificación!") else: 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 añadido: \""+Movie+"\" A la lista de Peliculas") else: showinfo("Guess No","La Pelicula: "+Movie+" No sera añadida") 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()'
else: 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 = ""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("<<ComboboxSelected>>",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()
Signo Zodiacal-Tkinter Python / Aportación Cecilia Abigail Cantu Alcala
Programa que te muestra tu signo zodiacal
# -*- coding: utf-8 -*-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) var.set("Enero") # initial valuever = StringVar(ventana) ver.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 Cáncer") 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 Escorpión") 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()
Programa de Peso, Aportacion de Valeria Vargas
import sys 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): tkMessageBox.showinfo("Alejate!","Aun no posees la edad suficiente para seguir!") ventana=Tk() ventana.title("Mayor de edad") ventana.geometry("600x400") vp = Frame(ventana) #estamos utilizando el objeto framevp.grid(column=0, row=0, padx =(50,50), pady=(10,10))vp.grid(column=0,row=0, padx=(50,50), pady=(10,10)) vp.columnconfigure(0, weigh=1) vp.rowconfigure(0, weight =1) PreguntarEdad = Label(vp, text="Por favor ingrese su fecha de Nacimiento") PreguntarEdad.grid(column=1,row=1,padx=(10,10),pady=(10,10)) CajaEdad = Spinbox(vp, from_=1980, to=2018,width=10) CajaEdad.grid(column=2, row=1, padx=(10,10), pady=(10,10), sticky=N+S) BotonCalcular = Button(vp, text="Calcular!", command=CalcularEdad) BotonCalcular.grid(column=3, row=1, padx=(10,10), pady=(10,10)) ventana.mainloop()
Juego del Color -Tkinter- Python
#Programa que realiza un pequeño juego utilizando Tkinter en Python.
# import the modulesfrom Tkinter import * import random colours = ['Red', 'Blue', 'Green', 'Pink', 'Black','Yellow', 'Orange', 'White', 'Purple',
'Brown'] score = 0 timeleft = 30 def startGame(event): if timeleft == 30: countdown() nextColour() def nextColour(): global score global timeleft if timeleft > 0: e.focus_set() if e.get().lower() == colours[1].lower(): score += 1. e.delete(0, END) random.shuffle(colours) label.config(fg=str(colours[1]), text=str(colours[0])) # update the score. scoreLabel.config(text="Score: " + str(score)) # Countdown timer functiondef countdown(): global timeleft if timeleft > 0: timeleft -= 1 timeLabel.config(text="Tiempo restante: " + str(timeleft)) . timeLabel.after(1000, countdown) # Driver Code root = Tk() root.title("COLORGAME") root.geometry("375x200") instructions = Label(root, text="escriba el color" "de la palabra, y no la palabra!",
font=('Helvetica', 12)) instructions.pack() scoreLabel = Label(root, text="Presione enter para iniciar", font=('Helvetica', 12)) scoreLabel.pack() timeLabel = Label(root, text="Tiempo restante: " + str(timeleft), font=('Helvetica', 12)) timeLabel.pack() label = Label(root, font=('Helvetica', 60)) label.pack() e = Entry(root) root.bind('<Return>', startGame) e.pack() e.focus_set() root.mainloop()
Ejercicios GUI Python #1
Ingreso de Usuario
Programa que muestra datos de una persona si es activa, sedentaria o moderada
#-*- coding:utf-8 -*-import sys from Tkinter import * import tkMessageBox def Mostrar(): if ent_v1.get() == "jaqueline" and ent_v2.get() == "22": tkMessageBox.showinfo("Usuario Correcto", "Bienvenido") else: tkMessageBox.showerror("Usuario y/o edad incorrecto", "Ingrese datos correctos") ventana= Tk() ventana.title("Operaciones Aritmeticas") ventana.geometry("600x200") ventana.config(bg="light blue") vp = Frame() vp.grid(column=0, row=0, padx=(50,50), pady=(10,10)) vp.columnconfigure(0 , weight=1) vp.rowconfigure(0, weight=1) vp.config(bg="light blue") etiqueta=Label(vp, text="Ingrese un nombre", font=('Courier',10)) etiqueta.grid(row=2, column=4) etiqueta.config(bg="darkturquoise") etiqueta2=Label(vp, text="Ingrese edad", font=('Courier', 10)) etiqueta2.grid(row=3, column=4) etiqueta2.config(bg="darkturquoise") v1=""ent_v1=Entry(vp,width=40, textvariable=v1) ent_v1.grid(row=2, column=5) v2=""ent_v2=Entry(vp,width=40, textvariable=v2) ent_v2.grid(row=3, column=5) boton=Button(vp, text="Mostrar", command=Mostrar) boton.grid(row=6, column=2) boton.config(bg="lightsteelblue") ventana.mainloop()
Programa que muestra datos de una persona si es activa, sedentaria o moderada
#-*- coding:utf-8 -*-import sys from Tkinter import * import tkMessageBox #funciones de procesamientodef procesar(): resultado= peso.get() + altura.get() tkMessageBox.showinfo("Resultado", resultado) #Instancia de la clase Tkventana = Tk() ventana.title('Generador de Rutinas') #Variables que almacenarán los datospeso = IntVar() altura = IntVar() cintura = IntVar() cuello = IntVar() genero = IntVar() genero.set(1) cadera = IntVar() actividad = StringVar() actividad.set("Sedentario") #generación de widgets#pesoetiqueta_peso = Label(ventana, text='Peso:') entrada_peso = Entry(ventana, textvariable=peso) etiqueta_peso.grid(row=1, column=1) entrada_peso.grid(row=1, column=2) #alturaetiqueta_altura = Label(ventana, text='Altura: ') entrada_altura = Entry(ventana, textvariable=altura) etiqueta_altura.grid(row=2, column=1) entrada_altura.grid(row=2, column=2) #generoetiqueta_genero = Label(ventana, text='Genero: ') entrada_genero_1 = Radiobutton(ventana, text='Masculino', variable=genero, value=1) entrada_genero_2 = Radiobutton(ventana, text='Femenino', variable=genero, value=2) etiqueta_genero.grid(row=5, column=1) entrada_genero_1.grid(row=5, column=2) entrada_genero_2.grid(row=5, column=3) #actividadetiqueta_actividad = Label(ventana, text='Actividad: ') entrada_actividad = OptionMenu(ventana, actividad, "Sedentario", "Moderado", "Activo") etiqueta_actividad.grid(row=7, column=1) entrada_actividad.grid(row=7, column=2) #botonboton = Button(ventana, text='Procesar', command=procesar ) boton.grid(row=8, column=3) #ejecución de ventanaventana.mainloop()
Ejercicio de Tkinter- Python- Generador de Numeros Random
# -*- coding: utf-8 -*-import sys from Tkinter import * import tkMessageBox import random def generar(): try: valor = int(ent_numero.get()) valor2 = int(ent_numero2.get()) numero= random.randint(valor,valor2) mensaje = ("Obtuviste el numero", numero, " c:") tkMessageBox.showinfo("Resultado", mensaje) except ValueError: tkMessageBox.showwarning("Error", "Ingrese un dato valido") app= Tk() app.title("Saludar") app.geometry("500x400") app.config(bg="skyblue") vp = Frame(app)
vp.grid(column=0, row=0, padx=(50,50),pady=(10,10))#grid nos sirve para posicionar
vp.config(bg="skyblue") vp.columnconfigure(0, weight=1) vp.rowconfigure(0, weight=1) etiqueta = Label(vp, text="Primer Numero\n" ) etiqueta.grid(column=1, row=1, sticky=(W, E)) etiqueta.config(bg="skyblue") etiqueta2 = Label(vp, text="Segundo Numero") etiqueta2.grid(column=1, row=3, sticky=(W, E)) etiqueta2.config(bg="skyblue") numero1= ""ent_numero = Entry(vp, width=40, textvariable=numero1) numero2= ""ent_numero2 = Entry(vp, width=40, textvariable=numero2) boton = Button(vp, text= "Haga click", command=generar,bg="lime") boton.grid(column=1, row=8) app.mainloop()
Suscribirse a:
Entradas (Atom)


















