CODIGO
from Tkinter import * def lineas(ventanaP): lineas= Canvas(width=210, height=210,bg="black") #lienzo donde va la figura lineas.pack() #carga la linea lineas.create_line(0,200,200,0, width=10, fill="white") #cordenadas de la linea a crear def ejecutar(f): ventanaP.after(200,f) #ejecuta las funciones ventanaP=Tk() ventanaP.title("Ventana de figura con un boton") ventanaP.config(bg="purple") #color de fondo de la ventana ventanaP.geometry("500x500") #tamano de la ventana a crear boton=Button(ventanaP, text="Mostrar linea",command=lambda : ejecutar(lineas(ventanaP))) #comando lambda para llamar a las funciones boton.pack() ventanaP.mainloop()
Tenemos definidos dos procesos con la instruccion "def" que son lineas(que recibe como parametro la ventana que vamos a crear) y ejecutar(sera el encargado de iniciar todo el programa).
Como podemos observar, dentro de ventana se ven nuevas funciones que permiten la configuracion de su "background" con un color solido, al igual que las dimensiones que tendra nuestra ventana.
Dentro de la intruccion lineas tenemos varias funciones que nos permiten realizar diversas cosas; primeramente con Canvas nos permite crear un lienzo con las especificaciones necesarias para el trazado de la linea que queremos (ancho,alto y el color que tendra nuestro lienzo), de igual forma la funcion "create_line" nos da la opcion de especificar como queremos la linea a dibujar.
Resultado
Una pequeña configuracion.
Como vemos en la siguiente imagen, la funcion ejecutar esta en comentario y ahora en lugar de dibujar una linea sera un cuadrado(debido a las medidas que se le dieron).
Lo que permite optimizar un poco el codigo que antes se tenia con un solo procedimiento pero para una figura diferente (dependiendo de la funcion "create" que se utilice).
Modificando las medidas y la funcion tenemos otros dos ejemplos con la misma funcion "create_rectangle" y "create_oval"
Rectangulo
from Tkinter import * def Rectangulo(ventanaP): Rectangulo= Canvas(width=210, height=210,bg="black") #lienzo donde va la figura Rectangulo.pack() #carga la linea Rectangulo.create_rectangle(10,10,200,100, width=10, fill="white") #cordenadas de la linea a crear #def ejecutar(f): #ventanaP.after(200,f) #ejecuta las funciones ventanaP=Tk() ventanaP.title("Ventana de figura con un boton") ventanaP.config(bg="purple") #color de fondo de la ventana ventanaP.geometry("500x500") #tamano de la ventana a crear boton=Button(ventanaP, text="Mostrar linea",command=lambda : Rectangulo(ventanaP)) #comando lambda para llamar a las funciones boton.pack() ventanaP.mainloop()
Circulo
from Tkinter import * def circulo(ventanaP): circulo= Canvas(width=210, height=210,bg="black") #lienzo donde va la figura circulo.pack() #carga la linea circulo.create_oval(10,10,200,200, width=10, fill="white") #cordenadas de la linea a crear #def ejecutar(f): #ventanaP.after(200,f) #ejecuta las funciones ventanaP=Tk() ventanaP.title("Ventana de figura con un boton") ventanaP.config(bg="purple") #color de fondo de la ventana ventanaP.geometry("500x500") #tamano de la ventana a crear boton=Button(ventanaP, text="Mostrar linea",command=lambda : circulo(ventanaP)) #comando lambda para llamar a las funciones boton.pack() ventanaP.mainloop()
from Tkinter import *
ResponderBorrarventanaP = Tk() #crea una objeto tipo ventana
ventanaP.title("Hare un poligono")
ventanaP.config(bg="brown") #Dar color al fondo de la ventana
ventanaP.geometry('500x500') #Dar ancho y alto de la ventana en pixeles
def poligono(ventanaP):
panel = Canvas(width= 400, height = 400, bg = 'red')#seria el lienzo canvas deon va fig
panel.create_polygon(200, 10, 380, 280, 10, 100, 360, 100, 10, 280, width=5, fill='', outline='green') #Coordenadas para la creacion del poligono
panel.pack()
#def ejecutar(f):
#ventanaP.after(200, f)#forma de ejecutar las funciones
boton = Button(ventanaP, text="Mostrar linea" , command= lambda: poligono(ventanaP))
boton.pack()
ventanaP.mainloop()