15 programas de interfaz, practicando GUI

PROGRAMA 1: Verificación de mayor edad.
#!/usr/bin/python
# -*- coding: utf-8 -*-
# Ejemplo de Edad con Spinbox.-
# Aportación de: Valeria Esmeralda Vargas Requena
import sys
from Tkinter import *
import tkMessageBox


def CalcularEdad():  # definimos la funcion edad
    Valor = int(CajaEdad.get())  # obtenemos el año de nacimiento
    if (2018 - Valor >= 18):  # si a restarle el año actual es mayor o igual a 18
        tkMessageBox.showinfo("Felicidades", "Eres Mayor de Edad!")  # es mayor de edad
    elif (2018 - Valor <= 5):  # si la edad es menor de 5 años
        tkMessageBox.showinfo("Eehhh?", "Como puedes tener menos de 5  y usar este programa")
    elif ((2018 - Valor) > 8 and (2018 - Valor) < 18):  # si la edad es entre os 8 y 15
        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="P#! / usr / bin / python
# -*- coding: utf-8 -*-
# Programa punto de venta, cuenta billetes, monedas etc...
# Aportación de: Jose Manuel Sanchez Izaguirre
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.config(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)

e3 = Label(vp, text="10.00")
e3.grid(column=1, row=7)

v0 = ""
v0 = Entry(vp, width=5, textvariable=v0)
v0.grid(row=3, column=2)

v1 = ""
v1 = Entry(vp, width=5, textvariable=v1)
v1.grid(row=4, column=2)

v2 = ""
v2 = Entry(vp, width=5, textvariable=v2)
v2.grid(row=5, column=2)

v3 = ""
v3 = Entry(vp, width=5, textvariable=v3)
v3.grid(row=6, column=2)

v4 = ""
v4 = Entry(vp, width=5, textvariable=v4)
v4.grid(row=7, column=2)

ET1 = Label(vp, text="BILLETES")
ET1.grid(column=2, row=9)

e4 = Label(vp, text="20.00")
e4.grid(column=1, row=11)

e5 = Label(vp, text="50.00")
e5.grid(column=1, row=12)

e6 = Label(vp, text="100.00")
e6.grid(column=1, row=13)

e7 = Label(vp, text="200.00")
e7.grid(column=1, row=14)

e8 = Label(vp, text="500.00")
e8.grid(column=1, row=15)

v5 = ""
v5 = Entry(vp, width=5, textvariable=v5)
v5.grid(row=11, column=2)

v6 = ""
v6 = Entry(vp, width=5, textvariable=v6)
v6.grid(row=12, column=2)

v7 = ""
v7 = Entry(vp, width=5, textvariable=v7)
v7.grid(row=13, column=2)

v8 = ""
v8 = Entry(vp, width=5, textvariable=v8)
v8.grid(row=14, column=2)

v9 = ""
v9 = Entry(vp, width=5, textvariable=v9)
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()or 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))



PROGRAMA 2: Convertidor  de moneda.
#! / usr / bin / python
# -*- coding: utf-8 -*-
# Programa punto de venta, cuenta billetes, monedas etc...
# Aportación de: Jose Manuel Sanchez Izaguirre
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.config(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)

e3 = Label(vp, text="10.00")
e3.grid(column=1, row=7)

v0 = ""
v0 = Entry(vp, width=5, textvariable=v0)
v0.grid(row=3, column=2)

v1 = ""
v1 = Entry(vp, width=5, textvariable=v1)
v1.grid(row=4, column=2)

v2 = ""
v2 = Entry(vp, width=5, textvariable=v2)
v2.grid(row=5, column=2)

v3 = ""
v3 = Entry(vp, width=5, textvariable=v3)
v3.grid(row=6, column=2)

v4 = ""
v4 = Entry(vp, width=5, textvariable=v4)
v4.grid(row=7, column=2)

ET1 = Label(vp, text="BILLETES")
ET1.grid(column=2, row=9)

e4 = Label(vp, text="20.00")
e4.grid(column=1, row=11)

e5 = Label(vp, text="50.00")
e5.grid(column=1, row=12)

e6 = Label(vp, text="100.00")
e6.grid(column=1, row=13)

e7 = Label(vp, text="200.00")
e7.grid(column=1, row=14)

e8 = Label(vp, text="500.00")
e8.grid(column=1, row=15)

v5 = ""
v5 = Entry(vp, width=5, textvariable=v5)
v5.grid(row=11, column=2)

v6 = ""
v6 = Entry(vp, width=5, textvariable=v6)
v6.grid(row=12, column=2)

v7 = ""
v7 = Entry(vp, width=5, textvariable=v7)
v7.grid(row=13, column=2)

v8 = ""
v8 = Entry(vp, width=5, textvariable=v8)
v8.grid(row=14, column=2)

v9 = ""
v9 = Entry(vp, width=5, textvariable=v9)
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()

PROGRAMA 3: Consulta de signo zodiacal.
#!/usr/bin/python
# -*- coding: utf-8 -*-
# Aportacion de Cecilia Abigal Cantu Alcala
# 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)
var.set("Enero")  # initial value
ver = 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())  # obtenemos el mes de nacimiento
    day = int(ver.get())  # obtenemos el dia de nacimiento
    # comparamos de acuerdo a diferentes tipos de reglas para definir el signo zodiacal
    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 4: Calculador de IMC.
#!/usr/bin/python
# -*- coding: utf-8 -*-
# Aportacion de Cecilia Abigal Cantu Alcala
# programa que calcula IMC

# -*- coding: utf-8 -*-import sys
import Tkinter
from Tkinter import *
import tkMessageBox


def imc():  # creamos la funcion para definir el indice de masa corporal
    num1 = int(entrada_peso.get())  # obtenemos el peso
    num2 = float(entrada_altura.get())  # obtenemos la altura
    imc = (num1 / (num2 * num2))  # obtenemos el calculo de imc

    if imc == 0 or imc < 18:
        tkMessageBox.showinfo("Resultado", "Peso bajo. Necesario valorar signos de desnutrición")

    # realizamos las comparaciones pertinentes
    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)

# altura
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()

PROGRAMA 5:Renta de peliculas.
# coding=utf-8
# Aportacion de Brandon Asael Cerda Hernandez
# Programa: con listas, combo box, agrega a la lista las peliculas al guardar
# excelente programa en python!!!
 
 
# -*- coding: utf-8 -*-
from Tkinter import Label, Entry, Button, Tk, Frame, W, N, S, E, END, HORIZONTAL, Spinbox
 
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()

PROGRAMA 6:Calculadora de interes generado.
#!/usr/bin/python
# -*- coding: utf-8 -*-

import sys
from Tkinter import *
import tkMessageBox


def interes():
    # obtenemos los valores de estos campos
    v1 = int(ent1.get())
    v2 = int(ent2.get())
    v3 = int(ent3.get())
    # hacemos el calculo del interes generado
    r = v1 * v2 / 100
    g = (r * v3)
    f = g + v1
    # damos el resultado final
    tkMessageBox.showinfo("Interes Total", "Cuando pasen " + str(v3) + " años, con un interes de " + str(
        v2) + " usted habrá generado " + str(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 7: Programa de incriptación.
# -*- coding: utf-8 -*-
from Tkinter import *

# Jesus Eduardo Martinez Hinojosa

# Ventana
ventana = Tk()
ventana.geometry("300x300+350+80")
ventana.title("Encriptador")
ventana.resizable(width=False, height=False)
try:
    ventana.iconbitmap("icono.ico")
except:
    print("no hay icono disponible")

# Clave
numclave = 1


# Funciones.
def boton1():
    # Cifrado Cesar
    TAM_MAX_CLAVE = 26

    def obtenerModo():
        modo = "e"
        return modo

    def obtenerMensaje():
        mensaje = text.get("0.0", END)
        return mensaje

    def obtenerClave():
        global numclave
        clave = numclave
        return clave

    def obtenerMensajeTraducido(modo, mensaje, clave):
        if modo[0] == 'd':
            clave = -clave
        traduccion = ''
        for simbolo in mensaje:
            if simbolo.isalpha():
                num = ord(simbolo)
                num += clave
                if simbolo.isupper():
                    if num > ord('Z'):
                        num -= 26
                    elif num < ord('A'):
                        num += 26
                elif simbolo.islower():
                    if num > ord('z'):
                        num -= 26
                    elif num < ord('a'):
                        num += 26
                traduccion += chr(num)
            else:
                traduccion += simbolo
        return traduccion

    modo = obtenerModo()
    mensaje = obtenerMensaje()
    if modo[0] != 'b':
        clave = obtenerClave()

    if modo[0] != 'b':
        texto = (obtenerMensajeTraducido(modo, mensaje, clave))
        text.delete("0.0", END)
        text.insert("0.0", texto)
        informe1.config(text="Texto Encriptado")
    else:
        for clave in range(1, TAM_MAX_CLAVE + 1):
            print(clave, obtenerMensajeTraducido('desencriptar', mensaje, clave))


def boton2():
    # Cifrado Cesar
    TAM_MAX_CLAVE = 26

    def obtenerModo():
        modo = "d"
        return modo

    def obtenerMensaje():
        mensaje = text.get("0.0", END)
        return mensaje

    def obtenerClave():
        global numclave
        clave = numclave
        return clave

    def obtenerMensajeTraducido(modo, mensaje, clave):
        if modo[0] == 'd':
            clave = -clave
        traduccion = ''
        for simbolo in mensaje:
            if simbolo.isalpha():
                num = ord(simbolo)
                num += clave
                if simbolo.isupper():
                    if num > ord('Z'):
                        num -= 26
                    elif num < ord('A'):
                        num += 26
                elif simbolo.islower():
                    if num > ord('z'):
                        num -= 26
                    elif num < ord('a'):
                        num += 26
                traduccion += chr(num)
            else:
                traduccion += simbolo
        return traduccion

    modo = obtenerModo()
    mensaje = obtenerMensaje()
    if modo[0] != 'b':
        clave = obtenerClave()

    if modo[0] != 'b':
        texto = (obtenerMensajeTraducido(modo, mensaje, clave))
        text.delete("0.0", END)
        text.insert("0.0", texto)
        informe1.config(text="Texto Desencriptado")
    else:
        for clave in range(1, TAM_MAX_CLAVE + 1):
            print(clave, obtenerMensajeTraducido('desencriptar', mensaje, clave))


def salir():
    ventana.destroy()


def menu_activacion(event):
    menu_despegable.post(event.x_root, event.y_root)


def cortar():
    text.clipboard_clear()
    text.clipboard_append(text.selection_get())
    sel = text.get(SEL_FIRST, SEL_LAST)
    text.delete(SEL_FIRST, SEL_LAST)


def copiar():
    text.clipboard_clear()
    text.clipboard_append(text.selection_get())


def pegar():
    tem = text.selection_get(selection="CLIPBOARD")
    text.insert(INSERT, tem)


# Widget
b1 = Button(ventana, text="Encriptar", bg='black', fg='white', activebackground='cyan',
            activeforeground='dark slate gray', command=boton1, font=("Courier New", 9))
b2 = Button(ventana, text="Desencriptar", bg='black', fg='white', activebackground='cyan',
            activeforeground='dark slate gray', command=boton2, font=("Courier New", 9))
text = Text(ventana, fg='lavender', bg='dark slate gray', font=("Courier New", 10))
informe1 = Label(ventana, text="Ingrese un texto", bg="turquoise", font=("Courier New", 10))

# Empaquetado de los widget
b1.place(x=10, y=260, width=120, height=30)
b2.place(x=167, y=260, width=120, height=30)

informe1.place(x=0, y=0, width=300, height=30)

text.place(x=0, y=30, height=218, width=300)

# Menu popup(menu despegable)
menu_despegable = Menu(ventana, tearoff=0)
menu_despegable.add_command(label="Cortar", command=cortar, font=("Courier New", 9))
menu_despegable.add_command(label="Copiar", command=copiar, font=("Courier New", 9))
menu_despegable.add_command(label="Pegar", command=pegar, font=("Courier New", 9))
menu_despegable.add_separator()
menu_despegable.add_command(label="Salir", command=salir, font=("Courier New", 9))

# Evento del menu despegable
text.bind("b3", menu_activacion)

# donde mantener el enfoque.
ventana.mainloop()



PROGRAMA 8: Programa de  interfaz usando grid.
# Aportacion.- Luis Angel Alonso Rojas
# programa que hace la interfaz
# programa que te pide tus datos basicos
# Luis Angel Alonso Rojas#15260607

from Tkinter import *

root = Tk()
root.title('formulario 1')
# row 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)
# row 2 : the
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)
# row 3 :
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)
# row 4 :
endfinish = Button(root, text="finalizar", relief=FLAT)
endfinish.grid(row=4, column=2)
root.mainloop()

PROGRAMA 9: Programa para mostrar y oculta una imagen.
# Programa.- que toma un archivo GIF y lo muestra

# -*- coding: utf-8 -*-

from Tkinter import *

ventana = Tk()
ventana.geometry('400x400')
ventana.config(bg="darkblue")
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="LatiasLatios.gif")
b1 = Button(ventana, text="Boton 1", image=imgBoton, fg="pink", width=200)
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()

PROGRAMA 10: Calendario.
#!/usr/bin/python
# -*- coding: utf-8 -*-

# Aportacion.- Martin Cruz Alvarez
# programa.- de Calendario

import calendar
import Tkinter as tk
import datetime

# Obtenemos los valores del año y mes a
ano = datetime.date.today().year
mes = datetime.date.today().month


def writeCalendar(ano, mes):
    # Asignamos el año y mes al calendario
    str1 = calendar.month(ano, mes)
    label1.configure(text=str1)


def mesAnterior():
    global mes, ano
    mes -= 1
    print mes
    print ano
    if mes == 0:  # si el mes es 0
        mes = 12  # el mes se resetea a 12
        ano -= 1  # y se le resta un año a a fecha
    writeCalendar(ano, mes)


def mesSiguiente():
    global mes, ano
    mes += 1
    if mes == 13:  # si el mes 13
        mes = 1  # se resetea el mes a 1
        ano += 1  # y se suma un año a la fecha
    writeCalendar(ano, mes)


root = tk.Tk()
root.title("Calendario")

# Lo posicionamos en un label
label1 = tk.Label(root, text="", font=('ALGER.TTF', 40, 'bold'), bg='turquoise', 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)
print ano, mes
writeCalendar(ano, mes)

# ejecutamos el evento loop
root.mainloop()


PROGRAMA 11:Saludar al usuario con el nombre ingresado.
from tkMessageBox import *
from Tkinter import *


def saludos():
    Nombre2 = nombre.get()
    showinfo("Saludador", "Saludos " + Nombre2)


ventana = Tk()
frame = Frame(ventana, width=500, height=250)
frame.pack()

ventana.title("Saludador")
label = Label(frame, text="Ingresa un nombre para saludar", font=("Arial", 10, "bold"), fg="darkblue").place(x=150, y=20)

nombre = StringVar()
Entry = Entry(frame, width=20, textvariable=nombre).place(x=190, y=100)

Nboton = StringVar()
Nboton.set('Saludar')
boton = Button(frame, textvariable=Nboton, command=saludos).place(x=350, y=100)

ventana.mainloop()

PROGRAMA 12:Agregar peliculas.
from Tkinter import *
from tkMessageBox import *

aux = 0


def agregar_pelicula():
    Seleccion = pelicula.get()
    peliculas.append(Seleccion)
    peliculas_lista = OptionMenu(ventanap, index, *peliculas).place(x=300, y=82)


def quitar_pelicula():
    Seleccion = pelicula.get()
    peliculas.remove(Seleccion)
    peliculas_lista = OptionMenu(ventanap, index, *peliculas).place(x=300, y=82)


ventanap = Tk()
ventanap.geometry("400x250")
ventanap.title("Peliculas")
Label(ventanap, text="Escribe el titulo de una pelicula").place(x=30, y=55)
Label(ventanap, text="Peliculas").place(x=300, y=55)
pelicula = StringVar()
nombre = Entry(ventanap, textvariable=pelicula, width=34).place(x=20, y=90)
peliculas = []
index = StringVar()
# peliculas_lista = OptionMenu(ventanap, index,*peliculas).place(x=300, y=82)
Button(ventanap, text="Agregar", command=agregar_pelicula).place(x=70, y=120)
Button(ventanap, text="Quitar", command=quitar_pelicula).place(x=140, y=120)
ventanap.mainloop()



PROGRAMA 13: Programa que muestra la ruta del programa
from Tkinter import *
from tkFileDialog import *


def ruta():
    nombre = askopenfilename()
    Ruta.set(nombre)


root = Tk()
root.geometry("400x200")
Label(root, text="Pulsa el boton y elige una ruta").place(x=50, y=50)
Ruta = StringVar()
Entry(root, textvariable=Ruta, width=42).place(x=50, y=80)
Button(root, text="....", width=5, command=ruta).place(x=320, y=76)

root.mainloop()


PROGRAMA 14:Generador de número al azar
from Tkinter import *
from random import *


def generar_numero():
    if int(variable1.get()) > int(variable2.get()):
        ran = str(randint(int(variable2.get()), int(variable1.get())))
        numero.set(ran)
    elif int(variable1.get()) < int(variable2.get()):
        ran = str(randint(int(variable1.get()), int(variable2.get())))
        numero.set(ran)


ventana = Tk()
ventana.title('Numeros Random')

frame = Frame(ventana, width=250, height=300)
frame.pack()

label1 = Label(frame, text='Numero 1', font=('Arial', 10, 'bold')).place(x=50, y=50)
label2 = Label(frame, text='Numero 2', font=('Arial', 10, 'bold')).place(x=50, y=100)

variable1 = StringVar()
variable2 = StringVar()

spin1 = Spinbox(frame, values=[1, 2, 3, 4, 5, 6, 7, 8, 9, 10], width=10, textvariable=variable1).place(x=150, y=53)
spin2 = Spinbox(frame, values=[1, 2, 3, 4, 5, 6, 7, 8, 9, 10], width=10, textvariable=variable2).place(x=150, y=103)

label3 = Label(frame, text='Numero Generado', font=('Arial', 10, 'bold')).place(x=20, y=200)

numero = StringVar()
entry = Entry(frame, width=10, textvariable=numero).place(x=150, y=200)

Nboton = StringVar()
Nboton.set('Generar')
Boton = Button(frame, textvariable=Nboton, command=generar_numero).place(x=150, y=250)

ventana.mainloop()



Comentarios

Entradas más populares de este blog

Uso de la multiplicacion con ensamblador

Programa de resta en ensamblador

Librerías para graficar en Python