def figura(): puntos = [226, 42, 198, 42, 170, 50, 141, 71, 127, 60, 108, 52, 94, 57, 85, 71, 85, 85, 95, 99, 108, 106, 120, 109, 127, 113, 127, 123, 142, 119, 161, 119, 178, 122, 189, 134, 192, 148, 189, 161, 176, 166, 160, 165, 142, 162, 156, 178, 170, 192, 192, 198, 207, 198, 198, 212, 170, 209, 151, 205, 132, 202, 113, 195, 108, 180, 99, 164, 80, 153, 57, 156, 38, 170, 34, 183, 35, 198, 42, 212, 56, 221, 71, 226, 85, 221, 104, 212, 127, 223, 152, 226, 175, 232, 189, 234, 184, 250, 184, 270, 184, 283, 190, 297, 196, 306, 184, 321, 180, 334, 178, 346, 180, 353, 188, 372, 212, 390, 194, 402, 181, 411, 170, 425, 170, 443, 176, 456, 190, 467, 208, 468, 227, 456, 275, 419, 276, 404, 269, 393, 252, 383, 236, 382, 221, 371, 206, 361, 201, 350, 203, 340, 209, 333, 221, 326, 237, 326, 255, 322, 270, 314, 280, 305, 297, 291, 311, 288, 335, 288, 354, 293, 368, 301, 378, 311, 386, 326, 403, 330, 411, 330, 462, 265, 461, 240, 450, 230, 435, 226, 421, 226, 406, 230, 396, 240, 380, 270, 354, 265, 332, 260, 311, 263, 297,263, 283, 263, 278, 250, 264, 226, 283, 226, 297, 221, 312, 212, 330, 198, 346, 198, 363, 198, 375, 188, 382, 175,386, 160, 382, 141, 362, 127, 334, 127, 326, 133, 312, 148, 312, 163, 315, 180, 304, 192, 290, 204, 273, 206, 255,205, 241, 204, 234, 198, 255, 189, 269, 180, 278, 166, 286, 151, 291, 132, 292, 113, 289, 99, 283, 85, 280, 74, 269, 63, 255, 51, 234, 42] v1 = Toplevel(v0) v1.deiconify() figura = Canvas(v1, width=500, height=500, bg='white') figura.pack(expand=YES, fill=BOTH) figura.create_polygon(puntos, fill="black", outline="white", width=6) b4 = Button(v1, text="Cerrar figura", command=lambda: v1.destroy()) b4.pack()
miércoles, 27 de septiembre de 2017
Código poligono
lunes, 18 de septiembre de 2017
Ejercicio de 5 figuras.
from Tkinter import *
v0 = Tk()
v0.config(bg="black") # Le da color al fondo
v0.geometry("500x500")
def circulo():
v1 = Toplevel(v0)
v1.deiconify()
circulo = Canvas(v1, width=210, height=210,bg='red')
circulo.pack(expand=YES, fill=BOTH)
circulo.create_oval(10, 10, 200, 200, width=3, fill='blue')
b4 = Button(v1, text="Cerrar circulo", command=lambda: v1.destroy())
b4.pack()
def rectangulo():
v1 = Toplevel(v0)
v1.deiconify()
rectangulo = Canvas(v1, width=210, height=210, bg='white')
rectangulo.pack(expand=YES, fill=BOTH)
rectangulo.create_rectangle(10, 10, 200, 200, width=5, fill='yellow')
b4 = Button(v1, text="Cerrar rectangulo", command=lambda: v1.destroy())
b4.pack()
def lineas():
v1 = Toplevel(v0)
v1.deiconify()
linea = Canvas(v1, width=210, height=210, bg='white')
linea.pack(expand=YES, fill=BOTH)
linea.create_line(0, 200, 200, 0, width=10, fill='black')
b4 = Button(v1, text="Cerrar linea", command=lambda: v1.destroy())
b4.pack()
def quesito():
v1 = Toplevel(v0)
v1.deiconify()
quesito = Canvas(v1, width=300, height=200, bg='white')
quesito.pack(expand=YES, fill=BOTH)
quesito.create_arc(10, 10, 190, 190, start=270, extent=90, fill='gray90')
b4 = Button(v1, text="Cerrar quesito", command=lambda: v1.destroy())
b4.pack()
def arco():
v1 = Toplevel(v0)
v1.deiconify()
arco = Canvas(v1, width =300, height=200, bg='white')
arco.pack(expand=YES, fill=BOTH)
xy = 10, 10, 190, 190
arco.create_arc(xy, start=0, extent=270, fill='gray60')
b4 = Button(v1, text="Cerrar arquito", command=lambda: v1.destroy())
b4.pack()
def quesitolleno():
v1 = Toplevel(v0)
v1.deiconify()
quesito = Canvas(v1, width=300, height=200, bg='white')
quesito.pack(expand=YES, fill=BOTH)
quesito.create_arc(20, 20, 200, 200, start=270, extent=90, fill='red')
quesito.pack(expand=YES, fill=BOTH)
xy = 10, 10, 190, 190
quesito.create_arc(xy, start=0, extent=270, fill='yellow')
b4 = Button(v1, text="Cerrar quesito relleno", command=lambda: v1.destroy())
b4.pack()
b1=Button(v0,text="Abrir circulo",command=lambda : circulo())
b1.grid(row=1,column=1)
b2=Button(v0,text="Abrir Rectangulo",command=lambda : rectangulo())
b2.grid(row=1,column=2)
b3=Button(v0,text="Abrir linea",command=lambda : lineas())
b3.grid(row=1,column=3)
b5=Button(v0,text="Abrir quesito",command=lambda : quesito())
b5.grid(row=1,column=4)
b6=Button(v0,text="Abrir arquito",command=lambda : arco())
b6.grid(row=1,column=5)
b7=Button(v0,text="Abrir quesito lleno",command=lambda : quesitolleno())
b7.grid(row=1,column=6)
v0.mainloop() # Es el evento que llama al inicio de nuestro programa. Siempre lo lleva la ventana principal.
v0 = Tk()
v0.config(bg="black") # Le da color al fondo
v0.geometry("500x500")
def circulo():
v1 = Toplevel(v0)
v1.deiconify()
circulo = Canvas(v1, width=210, height=210,bg='red')
circulo.pack(expand=YES, fill=BOTH)
circulo.create_oval(10, 10, 200, 200, width=3, fill='blue')
b4 = Button(v1, text="Cerrar circulo", command=lambda: v1.destroy())
b4.pack()
def rectangulo():
v1 = Toplevel(v0)
v1.deiconify()
rectangulo = Canvas(v1, width=210, height=210, bg='white')
rectangulo.pack(expand=YES, fill=BOTH)
rectangulo.create_rectangle(10, 10, 200, 200, width=5, fill='yellow')
b4 = Button(v1, text="Cerrar rectangulo", command=lambda: v1.destroy())
b4.pack()
def lineas():
v1 = Toplevel(v0)
v1.deiconify()
linea = Canvas(v1, width=210, height=210, bg='white')
linea.pack(expand=YES, fill=BOTH)
linea.create_line(0, 200, 200, 0, width=10, fill='black')
b4 = Button(v1, text="Cerrar linea", command=lambda: v1.destroy())
b4.pack()
def quesito():
v1 = Toplevel(v0)
v1.deiconify()
quesito = Canvas(v1, width=300, height=200, bg='white')
quesito.pack(expand=YES, fill=BOTH)
quesito.create_arc(10, 10, 190, 190, start=270, extent=90, fill='gray90')
b4 = Button(v1, text="Cerrar quesito", command=lambda: v1.destroy())
b4.pack()
def arco():
v1 = Toplevel(v0)
v1.deiconify()
arco = Canvas(v1, width =300, height=200, bg='white')
arco.pack(expand=YES, fill=BOTH)
xy = 10, 10, 190, 190
arco.create_arc(xy, start=0, extent=270, fill='gray60')
b4 = Button(v1, text="Cerrar arquito", command=lambda: v1.destroy())
b4.pack()
def quesitolleno():
v1 = Toplevel(v0)
v1.deiconify()
quesito = Canvas(v1, width=300, height=200, bg='white')
quesito.pack(expand=YES, fill=BOTH)
quesito.create_arc(20, 20, 200, 200, start=270, extent=90, fill='red')
quesito.pack(expand=YES, fill=BOTH)
xy = 10, 10, 190, 190
quesito.create_arc(xy, start=0, extent=270, fill='yellow')
b4 = Button(v1, text="Cerrar quesito relleno", command=lambda: v1.destroy())
b4.pack()
b1=Button(v0,text="Abrir circulo",command=lambda : circulo())
b1.grid(row=1,column=1)
b2=Button(v0,text="Abrir Rectangulo",command=lambda : rectangulo())
b2.grid(row=1,column=2)
b3=Button(v0,text="Abrir linea",command=lambda : lineas())
b3.grid(row=1,column=3)
b5=Button(v0,text="Abrir quesito",command=lambda : quesito())
b5.grid(row=1,column=4)
b6=Button(v0,text="Abrir arquito",command=lambda : arco())
b6.grid(row=1,column=5)
b7=Button(v0,text="Abrir quesito lleno",command=lambda : quesitolleno())
b7.grid(row=1,column=6)
v0.mainloop() # Es el evento que llama al inicio de nuestro programa. Siempre lo lleva la ventana principal.
jueves, 14 de septiembre de 2017
Juego del gato
from Tkinter import *
""" Se utiliza para mandar alertas al usuario mediante una caja de texto """
import tkMessageBox
from SimpleDialog import SimpleDialog
""" Son cajas con las cuales nosotros podemos pedir por ejemplo los nombres del jugador dentro del programa para
hacerlo un poco mas interactivo """
import tkSimpleDialog
def bloquear():
""" con este for ya estamos bloqueando los botones """
for i in range (0,9):
listaBotones[i].config(state="disable")
def iniciarJ():
""" Necesitamos desbloquear los botones """
for i in range (0,9):
listaBotones[i].config(state="normal")
listaBotones[i].config(bg="blue")
listaBotones[i].config(text="")
tablero[i] = "N"
""" La palabra global nos sirve para definir que estamos utilizando una variable global y no una local, el tksimpledialog
nos sirve para mostrar unas cajas de texto, que es una de las importaciones que estamos utilizando mas arriba """
global nombreJugador1,nombreJugador2
nombreJugador1 = tkSimpleDialog.askstring("Jugador","Escribe el nombre del jugador 1: ")
nombreJugador2 = tkSimpleDialog.askstring("Jugador","Escribe el nombre del jugador 2: ")
""" Aqui vamos a poner el turno del jugador """
turnoJugador.set("Turno: "+nombreJugador1)
def cambiar(num):
global turno,nombreJugador1,nombreJugador2
if tablero[num]=="N" and turno==0:
listaBotones[num].config(text="X")
listaBotones[num].config(bg="white")
tablero[num] = "X"
turno = 1
turnoJugador.set("Turno jugador: "+nombreJugador1)
elif tablero[num] == "N" and turno == 1:
listaBotones[num].config(text="O")
listaBotones[num].config(bg="lightblue")
tablero[num] = "O"
turno = 0
turnoJugador.set("Turno jugador: "+ nombreJugador2)
listaBotones[num].config(state="disable")
verificar()
""" Esta funcion se utiliza para verificar que jugador gano """
def verificar():
if (tablero[0]=="X" and tablero[1]=="X" and tablero[2]=="X") or (tablero[3]=="X" and tablero[4]=="X" and tablero[5]=="X") or (tablero[6]=="X" and tablero[7]=="X" and tablero[8]=="X"):
bloquear()
tkMessageBox.showinfo("Ganador", "Ganaste jugador "+nombreJugador1)
elif (tablero[0]=="X" and tablero[3]=="X" and tablero[6]=="X") or (tablero[1]=="X" and tablero[4]=="X" and tablero[7]=="X") or (tablero[2]=="X" and tablero[5]=="X" and tablero[8]=="X"):
bloquear()
tkMessageBox.showinfo("Ganador", "Ganaste jugador "+nombreJugador1)
elif (tablero[0]=="X" and tablero[4]=="X" and tablero[8]=="X") or (tablero[2]=="X" and tablero[4]=="X" and tablero[6]=="X"):
bloquear()
tkMessageBox.showinfo("Ganador", "Ganaste jugador "+nombreJugador1)
elif (tablero[0]=="O" and tablero[1]=="O" and tablero[2]=="O") or (tablero[3]=="O" and tablero[4]=="O" and tablero[5]=="O") or (tablero[6]=="O" and tablero[7]=="O" and tablero[8]=="O"):
bloquear()
tkMessageBox.showinfo("Ganador", "Ganaste jugador "+nombreJugador2)
elif (tablero[0]=="O" and tablero[3]=="O" and tablero[6]=="O") or (tablero[1]=="O" and tablero[4]=="O" and tablero[7]=="O") or (tablero[2]=="O" and tablero[5]=="O" and tablero[8]=="O"):
bloquear()
tkMessageBox.showinfo("Ganador", "Ganaste jugador "+nombreJugador2)
elif (tablero[0]=="O" and tablero[4]=="O" and tablero[8]=="O") or (tablero[2]=="O" and tablero[4]=="O" and tablero[6]=="O"):
bloquear()
tkMessageBox.showinfo("Ganador", "Ganaste jugador "+nombreJugador2)
""" Empezamos creando nuestra ventana (ventana es igual a un nuevo constructor de Tkinter) """
Ventana=Tk()
""" Empezamos a configuar las cosas basicas como la geometria """
Ventana.geometry("400x500")
Ventana.title("Juego de gato")
Ventana.config(bg="white")
""" Se va a manejar una variable turno que sera de tipo entero y nos dira el turno del jugador en caso de que sea turno
del jugador 1 o 2 """
turno = 0
""" Queremos hacer un juego interactivo por lo tanto vamos a pedir los nombres de los jugadores """
nombreJugador1 = ""
nombreJugador2 = ""
""" Ahora vamos a declarar una lista de botones para crear el tablero """
listaBotones = []
""" Necesitamos llevar un control interno del tablero por lo que hay que crear una lista del tablero donde
internamente manejamos donde hay una X, una O o donde no hay nada """
tablero = []
""" Por ultimo haremos una etiqueta donde nos diga que jugador esta actuando, declaramos un stringvar que pueda estar
cambiando el nombre del jugador """
turnoJugador=StringVar()
""" Si el tablero no tienen nada adentro le asignamos tres valor X, O u N """
for i in range (0,9):
""" estamos agregando al tablero una N para saber que no hay nada ahi al principio """
tablero.append("N")
""" Despues de esto empezamos a generar cada uno de los botones """
""" Boton0 es igual a un nuevo boton que estara dentro de la ventana que tiene un ancho y un alto y despues
lleva el comando de la funcion que queremos mandar llamar """
boton0 = Button(Ventana, width=9, height=3,command=lambda: cambiar(0))
""" la lista de botones va a agregar al boton0 para que despues lo podamos modificar en el momento que nosotros
queseemos """
listaBotones.append(boton0)
""" Le damos una localizacion al boton """
boton0.place(x=50,y=50)
"""" Creamos todos los botones """
boton1 = Button(Ventana, width=9, height=3,command=lambda: cambiar(1))
listaBotones.append(boton1)
boton1.place(x=150,y=50)
boton2 = Button(Ventana, width=9, height=3,command=lambda: cambiar(2))
listaBotones.append(boton2)
boton2.place(x=250,y=50)
boton3 = Button(Ventana, width=9, height=3,command=lambda: cambiar(3))
listaBotones.append(boton3)
boton3.place(x=50,y=150)
boton4 = Button(Ventana, width=9, height=3,command=lambda: cambiar(4))
listaBotones.append(boton4)
boton4.place(x=150,y=150)
boton5 = Button(Ventana, width=9, height=3,command=lambda: cambiar(5))
listaBotones.append(boton5)
boton5.place(x=250,y=150)
boton6 = Button(Ventana, width=9, height=3,command=lambda: cambiar(6))
listaBotones.append(boton6)
boton6.place(x=50,y=250)
boton7 = Button(Ventana, width=9, height=3,command=lambda: cambiar(7))
listaBotones.append(boton7)
boton7.place(x=150,y=250)
boton8 = Button(Ventana, width=9, height=3,command=lambda: cambiar(8))
listaBotones.append(boton8)
boton8.place(x=250,y=250)
""" Ahora vaos a deshabilitar los botones para que no se les pueda dar click antes de iniciar el juego y despues
anyadir otro boton para iniciar el juego, se anyadira tambien la etiqueta del jugador """
turnoEtiqueta = Label(Ventana,textvariable=turnoJugador).place(x=100,y=20)
iniciar = Button(Ventana,bg='blue',fg='white',text='Iniciar juego',width=15,height=3,command=iniciarJ).place(x=130,y=350)
""" Ahora vamos a crear la funcion bloquear """
bloquear()
print(tablero)
Ventana.mainloop()
""" Al momento de nosotros utilizar la funcion command=cambiar en los botones hay un error de logica porque al momento
de dar click en iniciar se mandan los numeros que esta mandando cada boton y ya no pasa nada mas, para solucionar esto
se usa una funcion llamada lambda que son funciones anonimas de una sola linea, como lambda no recibe parametros
entonces no se manda a llamar automaticamente al momento de iniciar la ventana, pero al darle click lamba lo que tiene
adentro manda a llamar la funcion cambiar en este caso y asi se truquea el error """
""" Se utiliza para mandar alertas al usuario mediante una caja de texto """
import tkMessageBox
from SimpleDialog import SimpleDialog
""" Son cajas con las cuales nosotros podemos pedir por ejemplo los nombres del jugador dentro del programa para
hacerlo un poco mas interactivo """
import tkSimpleDialog
def bloquear():
""" con este for ya estamos bloqueando los botones """
for i in range (0,9):
listaBotones[i].config(state="disable")
def iniciarJ():
""" Necesitamos desbloquear los botones """
for i in range (0,9):
listaBotones[i].config(state="normal")
listaBotones[i].config(bg="blue")
listaBotones[i].config(text="")
tablero[i] = "N"
""" La palabra global nos sirve para definir que estamos utilizando una variable global y no una local, el tksimpledialog
nos sirve para mostrar unas cajas de texto, que es una de las importaciones que estamos utilizando mas arriba """
global nombreJugador1,nombreJugador2
nombreJugador1 = tkSimpleDialog.askstring("Jugador","Escribe el nombre del jugador 1: ")
nombreJugador2 = tkSimpleDialog.askstring("Jugador","Escribe el nombre del jugador 2: ")
""" Aqui vamos a poner el turno del jugador """
turnoJugador.set("Turno: "+nombreJugador1)
def cambiar(num):
global turno,nombreJugador1,nombreJugador2
if tablero[num]=="N" and turno==0:
listaBotones[num].config(text="X")
listaBotones[num].config(bg="white")
tablero[num] = "X"
turno = 1
turnoJugador.set("Turno jugador: "+nombreJugador1)
elif tablero[num] == "N" and turno == 1:
listaBotones[num].config(text="O")
listaBotones[num].config(bg="lightblue")
tablero[num] = "O"
turno = 0
turnoJugador.set("Turno jugador: "+ nombreJugador2)
listaBotones[num].config(state="disable")
verificar()
""" Esta funcion se utiliza para verificar que jugador gano """
def verificar():
if (tablero[0]=="X" and tablero[1]=="X" and tablero[2]=="X") or (tablero[3]=="X" and tablero[4]=="X" and tablero[5]=="X") or (tablero[6]=="X" and tablero[7]=="X" and tablero[8]=="X"):
bloquear()
tkMessageBox.showinfo("Ganador", "Ganaste jugador "+nombreJugador1)
elif (tablero[0]=="X" and tablero[3]=="X" and tablero[6]=="X") or (tablero[1]=="X" and tablero[4]=="X" and tablero[7]=="X") or (tablero[2]=="X" and tablero[5]=="X" and tablero[8]=="X"):
bloquear()
tkMessageBox.showinfo("Ganador", "Ganaste jugador "+nombreJugador1)
elif (tablero[0]=="X" and tablero[4]=="X" and tablero[8]=="X") or (tablero[2]=="X" and tablero[4]=="X" and tablero[6]=="X"):
bloquear()
tkMessageBox.showinfo("Ganador", "Ganaste jugador "+nombreJugador1)
elif (tablero[0]=="O" and tablero[1]=="O" and tablero[2]=="O") or (tablero[3]=="O" and tablero[4]=="O" and tablero[5]=="O") or (tablero[6]=="O" and tablero[7]=="O" and tablero[8]=="O"):
bloquear()
tkMessageBox.showinfo("Ganador", "Ganaste jugador "+nombreJugador2)
elif (tablero[0]=="O" and tablero[3]=="O" and tablero[6]=="O") or (tablero[1]=="O" and tablero[4]=="O" and tablero[7]=="O") or (tablero[2]=="O" and tablero[5]=="O" and tablero[8]=="O"):
bloquear()
tkMessageBox.showinfo("Ganador", "Ganaste jugador "+nombreJugador2)
elif (tablero[0]=="O" and tablero[4]=="O" and tablero[8]=="O") or (tablero[2]=="O" and tablero[4]=="O" and tablero[6]=="O"):
bloquear()
tkMessageBox.showinfo("Ganador", "Ganaste jugador "+nombreJugador2)
""" Empezamos creando nuestra ventana (ventana es igual a un nuevo constructor de Tkinter) """
Ventana=Tk()
""" Empezamos a configuar las cosas basicas como la geometria """
Ventana.geometry("400x500")
Ventana.title("Juego de gato")
Ventana.config(bg="white")
""" Se va a manejar una variable turno que sera de tipo entero y nos dira el turno del jugador en caso de que sea turno
del jugador 1 o 2 """
turno = 0
""" Queremos hacer un juego interactivo por lo tanto vamos a pedir los nombres de los jugadores """
nombreJugador1 = ""
nombreJugador2 = ""
""" Ahora vamos a declarar una lista de botones para crear el tablero """
listaBotones = []
""" Necesitamos llevar un control interno del tablero por lo que hay que crear una lista del tablero donde
internamente manejamos donde hay una X, una O o donde no hay nada """
tablero = []
""" Por ultimo haremos una etiqueta donde nos diga que jugador esta actuando, declaramos un stringvar que pueda estar
cambiando el nombre del jugador """
turnoJugador=StringVar()
""" Si el tablero no tienen nada adentro le asignamos tres valor X, O u N """
for i in range (0,9):
""" estamos agregando al tablero una N para saber que no hay nada ahi al principio """
tablero.append("N")
""" Despues de esto empezamos a generar cada uno de los botones """
""" Boton0 es igual a un nuevo boton que estara dentro de la ventana que tiene un ancho y un alto y despues
lleva el comando de la funcion que queremos mandar llamar """
boton0 = Button(Ventana, width=9, height=3,command=lambda: cambiar(0))
""" la lista de botones va a agregar al boton0 para que despues lo podamos modificar en el momento que nosotros
queseemos """
listaBotones.append(boton0)
""" Le damos una localizacion al boton """
boton0.place(x=50,y=50)
"""" Creamos todos los botones """
boton1 = Button(Ventana, width=9, height=3,command=lambda: cambiar(1))
listaBotones.append(boton1)
boton1.place(x=150,y=50)
boton2 = Button(Ventana, width=9, height=3,command=lambda: cambiar(2))
listaBotones.append(boton2)
boton2.place(x=250,y=50)
boton3 = Button(Ventana, width=9, height=3,command=lambda: cambiar(3))
listaBotones.append(boton3)
boton3.place(x=50,y=150)
boton4 = Button(Ventana, width=9, height=3,command=lambda: cambiar(4))
listaBotones.append(boton4)
boton4.place(x=150,y=150)
boton5 = Button(Ventana, width=9, height=3,command=lambda: cambiar(5))
listaBotones.append(boton5)
boton5.place(x=250,y=150)
boton6 = Button(Ventana, width=9, height=3,command=lambda: cambiar(6))
listaBotones.append(boton6)
boton6.place(x=50,y=250)
boton7 = Button(Ventana, width=9, height=3,command=lambda: cambiar(7))
listaBotones.append(boton7)
boton7.place(x=150,y=250)
boton8 = Button(Ventana, width=9, height=3,command=lambda: cambiar(8))
listaBotones.append(boton8)
boton8.place(x=250,y=250)
""" Ahora vaos a deshabilitar los botones para que no se les pueda dar click antes de iniciar el juego y despues
anyadir otro boton para iniciar el juego, se anyadira tambien la etiqueta del jugador """
turnoEtiqueta = Label(Ventana,textvariable=turnoJugador).place(x=100,y=20)
iniciar = Button(Ventana,bg='blue',fg='white',text='Iniciar juego',width=15,height=3,command=iniciarJ).place(x=130,y=350)
""" Ahora vamos a crear la funcion bloquear """
bloquear()
print(tablero)
Ventana.mainloop()
""" Al momento de nosotros utilizar la funcion command=cambiar en los botones hay un error de logica porque al momento
de dar click en iniciar se mandan los numeros que esta mandando cada boton y ya no pasa nada mas, para solucionar esto
se usa una funcion llamada lambda que son funciones anonimas de una sola linea, como lambda no recibe parametros
entonces no se manda a llamar automaticamente al momento de iniciar la ventana, pero al darle click lamba lo que tiene
adentro manda a llamar la funcion cambiar en este caso y asi se truquea el error """
lunes, 11 de septiembre de 2017
Actividad 4 en python
from Tkinter import *
v0 = Tk()
v0.config(bg="black") # Le da color al fondo
v0.geometry("500x500")
def circulo():
v1 = Toplevel(v0)
v1.deiconify()
circulo = Canvas(v1, width=210, height=210,bg='red')
circulo.pack(expand=YES, fill=BOTH)
circulo.create_oval(10, 10, 200, 200, width=3, fill='blue')
b4 = Button(v1, text="Cerrar circulo", command=lambda: v1.destroy())
b4.pack()
def rectangulo():
v1 = Toplevel(v0)
v1.deiconify()
rectangulo = Canvas(v1, width=210, height=210, bg='white')
rectangulo.pack(expand=YES, fill=BOTH)
rectangulo.create_rectangle(10, 10, 200, 200, width=5, fill='yellow')
b4 = Button(v1, text="Cerrar circulo", command=lambda: v1.destroy())
b4.pack()
def lineas():
v1 = Toplevel(v0)
v1.deiconify()
linea = Canvas(v1, width=210, height=210, bg='white')
linea.pack(expand=YES, fill=BOTH)
linea.create_line(0, 200, 200, 0, width=10, fill='black')
b4 = Button(v1, text="Cerrar circulo", command=lambda: v1.destroy())
b4.pack()
b1=Button(v0,text="Abrir circulo",command=lambda : circulo())
b1.grid(row=1,column=1)
b2=Button(v0,text="Abrir Rectangulo",command=lambda : rectangulo())
b2.grid(row=1,column=2)
b3=Button(v0,text="Abrir linea",command=lambda : lineas())
b3.grid(row=1,column=3)
v0.mainloop() # Es el evento que llama al inicio de nuestro programa. Siempre lo lleva la ventana principal.
v0 = Tk()
v0.config(bg="black") # Le da color al fondo
v0.geometry("500x500")
def circulo():
v1 = Toplevel(v0)
v1.deiconify()
circulo = Canvas(v1, width=210, height=210,bg='red')
circulo.pack(expand=YES, fill=BOTH)
circulo.create_oval(10, 10, 200, 200, width=3, fill='blue')
b4 = Button(v1, text="Cerrar circulo", command=lambda: v1.destroy())
b4.pack()
def rectangulo():
v1 = Toplevel(v0)
v1.deiconify()
rectangulo = Canvas(v1, width=210, height=210, bg='white')
rectangulo.pack(expand=YES, fill=BOTH)
rectangulo.create_rectangle(10, 10, 200, 200, width=5, fill='yellow')
b4 = Button(v1, text="Cerrar circulo", command=lambda: v1.destroy())
b4.pack()
def lineas():
v1 = Toplevel(v0)
v1.deiconify()
linea = Canvas(v1, width=210, height=210, bg='white')
linea.pack(expand=YES, fill=BOTH)
linea.create_line(0, 200, 200, 0, width=10, fill='black')
b4 = Button(v1, text="Cerrar circulo", command=lambda: v1.destroy())
b4.pack()
b1=Button(v0,text="Abrir circulo",command=lambda : circulo())
b1.grid(row=1,column=1)
b2=Button(v0,text="Abrir Rectangulo",command=lambda : rectangulo())
b2.grid(row=1,column=2)
b3=Button(v0,text="Abrir linea",command=lambda : lineas())
b3.grid(row=1,column=3)
v0.mainloop() # Es el evento que llama al inicio de nuestro programa. Siempre lo lleva la ventana principal.
jueves, 7 de septiembre de 2017
Funciones
""" Una funcion es un fragmento de codigo donde nosotros realizamos algunas tareas y a este fragmento de codigo nosotros
podemos asignarle un nombre para poder hacer referencia a el, a las funciones podemos enviarles parametros, tambien
conocidos como argumentos de difusion y esos procesarlos dentro del bloque de codigo para despues regresar un valor """
""" Las funciones se definen como (DEF) que es una palabra reservada de Python """
def mi_Funcion(num1=0, num2=0):
print num1 + num2
""" Lo unico que hace es definir la funcion pero no la ejecuta, entonces tenemos que hacer lo siguiente, mandar parametros
a la funcion"""
mi_Funcion(3,10)
""" Si nosotros tenemos solamente dos parametros en nuestra funcion pero agregamos 2 + N cantidad de parametros
cuando las estamos asignando entonces podriamos poner un * despues del ultimo parametro de la funcion, esto hara
que el tercer parametro se tome coo tupla """
def mi_Funcion2(cad,v=2,*algomas):
print cad * v
for cadena in algomas:
print cadena * v
mi_Funcion2('Python',5,'Hola','Adios','N','Cadenas')
""" con un * de mas se toma como diccionario """
""" Asi funciona el return """
def mi_Funcion3(num1,num2):
return num1 + num2
resultado = mi_Funcion3(3,4)
print (resultado)
podemos asignarle un nombre para poder hacer referencia a el, a las funciones podemos enviarles parametros, tambien
conocidos como argumentos de difusion y esos procesarlos dentro del bloque de codigo para despues regresar un valor """
""" Las funciones se definen como (DEF) que es una palabra reservada de Python """
def mi_Funcion(num1=0, num2=0):
print num1 + num2
""" Lo unico que hace es definir la funcion pero no la ejecuta, entonces tenemos que hacer lo siguiente, mandar parametros
a la funcion"""
mi_Funcion(3,10)
""" Si nosotros tenemos solamente dos parametros en nuestra funcion pero agregamos 2 + N cantidad de parametros
cuando las estamos asignando entonces podriamos poner un * despues del ultimo parametro de la funcion, esto hara
que el tercer parametro se tome coo tupla """
def mi_Funcion2(cad,v=2,*algomas):
print cad * v
for cadena in algomas:
print cadena * v
mi_Funcion2('Python',5,'Hola','Adios','N','Cadenas')
""" con un * de mas se toma como diccionario """
""" Asi funciona el return """
def mi_Funcion3(num1,num2):
return num1 + num2
resultado = mi_Funcion3(3,4)
print (resultado)
Bucles
""" Los bucles nos permiten ejecutar cierto codigo N cantidad de veces dependiendo de una condicion """
edad = 0
while edad <= 20:
print "Tienes: " + str (edad)
edad = edad + 1
edad = 0
""" La palabra continue es reservada de Python, cuando un bucle se encuentre con esta palabra entonces se saltara todo
lo que sigue """
while edad <= 20:
if edad == 15:
edad = edad + 1
continue
print "Tienes: " + str (edad)
edad = edad + 1
edad = 0
""" Break es para que pare el bucle """
while edad <= 20:
if edad == 15:
break
print "Tienes: " + str (edad)
edad = edad + 1
""" Bucle for in, recorre tuplas, listas o diccionarios """
lista = ['Elemento 1', 'Elemento 2', 'Elemento 3']
for elem in lista:
print(elem)
for letra in "Cadena":
print letra
edad = 0
while edad <= 20:
print "Tienes: " + str (edad)
edad = edad + 1
edad = 0
""" La palabra continue es reservada de Python, cuando un bucle se encuentre con esta palabra entonces se saltara todo
lo que sigue """
while edad <= 20:
if edad == 15:
edad = edad + 1
continue
print "Tienes: " + str (edad)
edad = edad + 1
edad = 0
""" Break es para que pare el bucle """
while edad <= 20:
if edad == 15:
break
print "Tienes: " + str (edad)
edad = edad + 1
""" Bucle for in, recorre tuplas, listas o diccionarios """
lista = ['Elemento 1', 'Elemento 2', 'Elemento 3']
for elem in lista:
print(elem)
for letra in "Cadena":
print letra
Sentencias condicionales
#encoding: utf-8
""" Las sentencias condicionales nos permiten ejecutar un bloque de codigo siempre que se cumpla una
condicion y solo se ejecutara una vez cada que hagamos esa evaluacion"""
edad = 7
m_edad = 18
if edad >= m_edad:
print "Eres mayor de edad"
else:
print "No eres mayor de edad"
if edad >= 0 and edad < 18:
print"Eres un niño"
elif edad >=18 and edad < 27:
print"Eres un joven"
elif edad >=27 and edad < 60:
print"Eres un adulto"
else:
print"Eres de la tercera edad"
""" Las sentencias condicionales nos permiten ejecutar un bloque de codigo siempre que se cumpla una
condicion y solo se ejecutara una vez cada que hagamos esa evaluacion"""
edad = 7
m_edad = 18
if edad >= m_edad:
print "Eres mayor de edad"
else:
print "No eres mayor de edad"
if edad >= 0 and edad < 18:
print"Eres un niño"
elif edad >=18 and edad < 27:
print"Eres un joven"
elif edad >=27 and edad < 60:
print"Eres un adulto"
else:
print"Eres de la tercera edad"
miércoles, 6 de septiembre de 2017
Operadores relacionales
""" Los operadores relacionales nos permiten relacionar o comparar dos elementos y esta comparacion nos mandara
un valor de falso o verdadero en caso de que se cumpla o no """
valor = 5
valor2 = 5
r = valor == valor2 #El == es el operador relacional que compara los dos valores
print r
r2 = valor != valor2 #El != es el contrario de ==
print r2
r3 = valor < valor2 #compara si valor es menor a valor2
print r3
r4 = valor > valor2 #compara si valor es mayor a valor2
print r4
r5 = valor >= valor2 #compara si valor es mayor o igual a valor2
print r5
r6 = valor <= valor2 #compara si valor es menor o igual a valor2
print r6
""" Tambien aplica con cadenas de caracteres, listas, y tuplas """
un valor de falso o verdadero en caso de que se cumpla o no """
valor = 5
valor2 = 5
r = valor == valor2 #El == es el operador relacional que compara los dos valores
print r
r2 = valor != valor2 #El != es el contrario de ==
print r2
r3 = valor < valor2 #compara si valor es menor a valor2
print r3
r4 = valor > valor2 #compara si valor es mayor a valor2
print r4
r5 = valor >= valor2 #compara si valor es mayor o igual a valor2
print r5
r6 = valor <= valor2 #compara si valor es menor o igual a valor2
print r6
""" Tambien aplica con cadenas de caracteres, listas, y tuplas """
Diccionarios
""" En los diccionarios los elementos no tienen un indice, sino una clave """
diccionario={'Clave1':[1,2,3],
'Clave2':["Hola","Adios"]}
""" Los diccionarios tambien se conocen como matrices asociativas """
""" En los diccionarios si podemos modificar el valor de un elemento, pero no podemos modificar la clave """
print diccionario['Clave1']
print diccionario['Clave2']
diccionario={'Clave1':[1,2,3],
'Clave2':["Hola","Adios"]}
""" Los diccionarios tambien se conocen como matrices asociativas """
""" En los diccionarios si podemos modificar el valor de un elemento, pero no podemos modificar la clave """
print diccionario['Clave1']
print diccionario['Clave2']
Tuplas
""" Las tuplas a diferencia de las listas no necesitan estar entre corchetes, sino que los valores tienen que estar
solamente separados por comas """
tupla = 3, 5, 6, 10
print tupla
""" Cuando trabajamos con tuplas es conveniente agregar parentesis entre los valores aunque no necesario """
tupla2 = (10, True, False, 10, 'Hola')
print tupla2
""" Nos sirve para saber el tipo de dato """
print type (tupla2)
"""" Todo lo que sabemos sobre las listas es aplicable para las listas, la diferencia es que la tupla es de una
dimension fija, a la lista nosotros podemos agregar mas elementos pero a las tuplas no, a las tuplas tampoco se les
pueden modificar los elementos ""
solamente separados por comas """
tupla = 3, 5, 6, 10
print tupla
""" Cuando trabajamos con tuplas es conveniente agregar parentesis entre los valores aunque no necesario """
tupla2 = (10, True, False, 10, 'Hola')
print tupla2
""" Nos sirve para saber el tipo de dato """
print type (tupla2)
"""" Todo lo que sabemos sobre las listas es aplicable para las listas, la diferencia es que la tupla es de una
dimension fija, a la lista nosotros podemos agregar mas elementos pero a las tuplas no, a las tuplas tampoco se les
pueden modificar los elementos ""
Listas en python
""" La primera linea declara una lista o un vector como se conoce en otros lenguajes de programacion
las listas en Pyhon pueden incluso contener otras listas dentro como se ve en la siguiente funcion
lista = [2, "tres", True, ["uno", 10]] aqui tenemos una lista dentro de otra"""
lista = [2, "tres", True, ["uno", 10]]
""" En la segunda funcion estamos accediendo a los elementos de nuestra lista por ejemplo si tenemos
lista2 = lista[0] entonces lista2 tendria guardado dentro el valor "2" """
""" la lista que tenemos adentro de una lista seria considerado como un solo valor dentro de la lista principal
por lo que seria el elemento numero 3 de nuestra lista principal si comenzamos por el valor 0 en este caso"""
""" La siguiente funcion nos guarda el valor de la posicion 0 de la lista principal en la variable valor """
valor = lista[0]
""" La siguiente funcion nos permite guardar en una variable un valor x de la lista secundaria que esta
dentro de la lista principal, como el valor de la lista secundaria en la lista principal es de 3 y el valor
que queremos mostrar dentro de la lista secundaria es "uno" escribimos lo siguiente """
valor2 = lista[3][0]
print valor
print valor2
""" Para editar el valor en la posicion de una lista seria """
lista[1] = "cuatro"
print lista[1]
""" La siguiente instruccion se utiliza para hacer una nueva lista a partir de otra pero tomando un rango, en este
caso utilizaremos desde el rango 0 (que es el indice desde donde empezaremos a contar) hasta 3(que es la cantidad
de valores que vamos a tomar) desde el elemento 0 hasta el tercer elemento de la lista. Entonces: """
lista3 = lista[0:3]
print lista3
""" El siguiente comando nos dice que desde el indice 3 hasta el tercer valor de la lista al momento de imprimir
nos ira dando un salto de 1 por el (:2) que estamos escribiendo, el salto seria de 2-1 que nos da 1 """
lista4 = lista[0:3:2]
print lista4
""" La siguiente instruccion nos dice que nos imprima la lista desde el indice cero saltando un espacio entre cada valor """
lista5 = lista[0::2]
print lista5
""" La siguiente instruccion cambia los valores de una lista desde el indice cero hasta el segundo valor en este caso """
lista6 = lista
lista6[0:2]=[4,3]
print lista6
""" Si queremos cambiar dos valores por solo uno entonces seria """
lista7 = lista
lista7[0:2]=[4]
print lista7
""" Para poder obtener los datos de una lista de forma negativa entonces seria algo asi, nos imprime el ultimo valor
de la lista puesto que los indices de la lista se invierten empezando a contar desde -1 """
lista8 = lista
lista8 = lista8[-1]
print lista8
las listas en Pyhon pueden incluso contener otras listas dentro como se ve en la siguiente funcion
lista = [2, "tres", True, ["uno", 10]] aqui tenemos una lista dentro de otra"""
lista = [2, "tres", True, ["uno", 10]]
""" En la segunda funcion estamos accediendo a los elementos de nuestra lista por ejemplo si tenemos
lista2 = lista[0] entonces lista2 tendria guardado dentro el valor "2" """
""" la lista que tenemos adentro de una lista seria considerado como un solo valor dentro de la lista principal
por lo que seria el elemento numero 3 de nuestra lista principal si comenzamos por el valor 0 en este caso"""
""" La siguiente funcion nos guarda el valor de la posicion 0 de la lista principal en la variable valor """
valor = lista[0]
""" La siguiente funcion nos permite guardar en una variable un valor x de la lista secundaria que esta
dentro de la lista principal, como el valor de la lista secundaria en la lista principal es de 3 y el valor
que queremos mostrar dentro de la lista secundaria es "uno" escribimos lo siguiente """
valor2 = lista[3][0]
print valor
print valor2
""" Para editar el valor en la posicion de una lista seria """
lista[1] = "cuatro"
print lista[1]
""" La siguiente instruccion se utiliza para hacer una nueva lista a partir de otra pero tomando un rango, en este
caso utilizaremos desde el rango 0 (que es el indice desde donde empezaremos a contar) hasta 3(que es la cantidad
de valores que vamos a tomar) desde el elemento 0 hasta el tercer elemento de la lista. Entonces: """
lista3 = lista[0:3]
print lista3
""" El siguiente comando nos dice que desde el indice 3 hasta el tercer valor de la lista al momento de imprimir
nos ira dando un salto de 1 por el (:2) que estamos escribiendo, el salto seria de 2-1 que nos da 1 """
lista4 = lista[0:3:2]
print lista4
""" La siguiente instruccion nos dice que nos imprima la lista desde el indice cero saltando un espacio entre cada valor """
lista5 = lista[0::2]
print lista5
""" La siguiente instruccion cambia los valores de una lista desde el indice cero hasta el segundo valor en este caso """
lista6 = lista
lista6[0:2]=[4,3]
print lista6
""" Si queremos cambiar dos valores por solo uno entonces seria """
lista7 = lista
lista7[0:2]=[4]
print lista7
""" Para poder obtener los datos de una lista de forma negativa entonces seria algo asi, nos imprime el ultimo valor
de la lista puesto que los indices de la lista se invierten empezando a contar desde -1 """
lista8 = lista
lista8 = lista8[-1]
print lista8
Ejemplos 7 - 11
#!/usr/bin/env python
# -*- coding: utf-8 -*-
from Tkinter import * # Importa el módulo
ventana0 = Tk() # Tk() Es la ventana0 principal
ventana1=Toplevel(ventana0) # Crea una ventana0 hija
def mostrar(ventana): ventana.deiconify()
def ocultar(ventana):ventana.withdraw()
def ejecutar(f): ventana0.after(200,f)
ventana0.config(bg="black") # Le da color al fondo
ventana0.geometry("500x500") # Cambia el tamaño de la ventana0
boton1=Button(ventana0,text="Abrir la ventana0",command=lambda: ejecutar(mostrar(ventana1))) # Primer boton
boton1.grid(row=1,column=1) # El boton es cargado
boton2=Button(ventana0,text="Ocultar la ventana0",command=lambda: ejecutar(ocultar(ventana1))) # Segundo boton
boton2.grid(row=1,column=2) # El boton es cargado
ventana1.withdraw() # Oculta la ventana0 v1
ventana0.mainloop() # Es el evento que llama al inicio de nuestro programa. Siempre lo lleva la ventana0 principal.
# -*- coding: utf-8 -*-
from Tkinter import * # Importa el módulo
ventana0 = Tk() # Tk() Es la ventana0 principal
ventana1=Toplevel(ventana0) # Crea una ventana0 hija
def mostrar(ventana): ventana.deiconify()
def ocultar(ventana):ventana.withdraw()
def ejecutar(f): ventana0.after(200,f)
ventana0.config(bg="black") # Le da color al fondo
ventana0.geometry("500x500") # Cambia el tamaño de la ventana0
boton1=Button(ventana0,text="Abrir la ventana0",command=lambda: ejecutar(mostrar(ventana1))) # Primer boton
boton1.grid(row=1,column=1) # El boton es cargado
boton2=Button(ventana0,text="Ocultar la ventana0",command=lambda: ejecutar(ocultar(ventana1))) # Segundo boton
boton2.grid(row=1,column=2) # El boton es cargado
ventana1.withdraw() # Oculta la ventana0 v1
ventana0.mainloop() # Es el evento que llama al inicio de nuestro programa. Siempre lo lleva la ventana0 principal.
--------------------------------------------------------------------------------------------------------------------------
#!/usr/bin/env python
# -*- coding: utf-8 -*-
from Tkinter import * # Importa el módulo
v0 = Tk() # Tk() Es la ventana principal
v1=Toplevel(v0) # Crea una ventana hija
def mostrar(ventana): ventana.deiconify() # Muestra una ventana
def ocultar(ventana):ventana.withdraw() # Oculta una ventana
def ejecutar(f): v0.after(200,f) # Una forma de ejecutar las funciones
def imprimir(texto): print texto # Imprime un texto
v0.config(bg="black") # Le da color al fondo
v0.geometry("500x500") # Cambia el tamaño de la ventana
b1=Button(v0,text="ABRIR VENTANA V1",command=lambda: ejecutar(mostrar(v1)) or imprimir("hola")) # Primer botón
b1.grid(row=1,column=1) # El botón es cargado
b2=Button(v0,text="OCULTAR VENTANA V1",command=lambda: ejecutar(ocultar(v1))) # Segundo botón
b2.grid(row=1,column=2) # El botón es cargado
v1.withdraw() # Oculta la ventana v1
v0.mainloop() # Es el evento que llama al inicio de nuestro programa. Siempre lo lleva la ventana principal.
--------------------------------------------------------------------------------------------------------------------------
#!/usr/bin/env python
# -*- coding: utf-8 -*-
from Tkinter import * # Importa el m�dulo
v0 = Tk() # Tk() Es la ventana principal
v1=Toplevel(v0) # Crea una ventana hija
v0.title("Ventana inicial")
v1.title("Ventana hija")
def mostrar(ventana):
ventana.deiconify() # Muestra una ventana
def ocultar(ventana):
ventana.withdraw() # Oculta una ventana
def ejecutar(f):
v0.after(200,f) # Una forma de ejecutar las funciones
def imprimir(texto):
print texto # Imprime un texto
v0.config(bg="lightblue") # Le da color al fondo
v0.geometry("600x400") # Cambia el tama�o de la ventana
b1=Button(v0,text="Abrir la ventana",command=lambda: ejecutar(mostrar(v1)) or imprimir("hola") or imprimir("tercera función")) # Primer bot�n
b1.grid(row=1,column=2) # El bot�n es cargado
b2=Button(v0,text="Cerrar la ventana",command=lambda: ejecutar(ocultar(v1))) # Segundo bot�n
b2.grid(row=2,column=2) # El bot�n es cargado
v1.withdraw() # Oculta la ventana v1
v0.mainloop() # Es el evento que llama al inicio de nuestro programa. Siempre lo lleva la ventana principal.
--------------------------------------------------------------------------------------------------------------------------
#!/usr/bin/env python
# -*- coding: utf-8
from Tkinter import * # Importa el módulo
v0 = Tk() # Tk() Es la ventana principal
v1=Toplevel(v0) # Crea una ventana hija
v1.protocol("WM_DELETE_WINDOW", "onexit") # Elimina la opción de salir para evitar el error
def mostrar(ventana): ventana.deiconify() # Muestra una ventana
def ocultar(ventana):ventana.withdraw() # Oculta una ventana
def ejecutar(f): v0.after(200,f) # Una forma de ejecutar las funciones
def imprimir(texto): print texto # Imprime un texto
v0.config(bg="black") # Le da color al fondo
v0.geometry("500x500") # Cambia el tamaño de la ventana
b1=Button(v0,text="ABRIR VENTANA V1",command=lambda: ejecutar(mostrar(v1)) or imprimir("hola") or imprimir("tercera función")) # Primer botón
b1.grid(row=1,column=1) # El botón es cargado
b2=Button(v1,text="OCULTAR VENTANA V1",command=lambda: ejecutar(ocultar(v1))) # Segundo botón
b2.grid(row=1,column=2) # El botón es cargado
b3=Button(v0,text="SALIR",command=lambda: ejecutar(ocultar(v1)))
b3.grid(row=1,column=2) # El botón es cargado
v1.withdraw() # Oculta la ventana v1
v0.mainloop() # Es el evento que llama al inicio de nuestro programa. Siempre lo lleva la ventana principal.
--------------------------------------------------------------------------------------------------------------------------
#!/usr/bin/env python
# -*- coding: utf-8
from Tkinter import * # Importa el módulo
v0 = Tk() # Tk() Es la ventana principal
v1=Toplevel(v0) # Crea una ventana hija
v1.protocol("WM_DELETE_WINDOW", "onexit") # Elimina la opción de salir para evitar el error
v0.resizable(0,0) # Evita que la ventana se pueda cambiar de tamaño
v1.resizable(0,0) # Evita que se le pueda cambiar de tamaño a la ventana
def mostrar(ventana): ventana.deiconify() # Muestra una ventana
def ocultar(ventana):ventana.withdraw() # Oculta una ventana
def ejecutar(f): v0.after(200,f) # Una forma de ejecutar las funciones
def imprimir(texto): print texto # Imprime un texto
v0.config(bg="black") # Le da color al fondo
v0.geometry("500x500") # Cambia el tamaño de la ventana
b1=Button(v0,text="ABRIR VENTANA V1",command=lambda: ejecutar(mostrar(v1)) or imprimir("hola") or imprimir("tercera función")) # Primer botón
b1.grid(row=1,column=1) # El botón es cargado
b2=Button(v1,text="OCULTARME",command=lambda: ejecutar(ocultar(v1))) # Segundo botón
b2.grid(row=1,column=2) # El botón es cargado
b3=Button(v0,text="OCULTAR VENTANA V1",command=lambda: ejecutar(ocultar(v1)))
b3.grid(row=1,column=2) # El botón es cargado
v1.withdraw() # Oculta la ventana v1
v0.mainloop() # Es el evento que llama al inicio de nuestro programa. Siempre lo lleva la ventana principal.
Suscribirse a:
Entradas (Atom)