November 4, 2010

python TK!

Dra Elisa Schaeffer
Lab de Lenguajes de Programación Hora: V1

Bueno aquí les dejare otro post sobre Tkinter, en este post veremos como cambiar el nombre de nuestra ventana, establecer dimensiones máximas y mínimas a nuestra ventana y utilizaremos Canvas, que se usa para realizar gráficos en 2D, tales como líneas, circulos, etc, es decir dibujos sencillos.

Empezemos....

Bueno primero que nada como en todo programa de python establecemos la ruta en dond se encuentra nuestro intérprete:

#!/usr/bin/python

Despues importamos el modulo de python Tk:

from Tkinter import*


Y por último definimos una variable global llamada canv que igualaremos a 0, esta variable la utilizaremos en la funciones que realizaremos despues:

canv = 0

Nuestro código se encuentra de la siguiente manera:



Ahora definiremos nuestras funciones....

Definimos nuestra función principal, yo la defini como función main y dentro de la función llamamos a nuestra variable global canv, esto para definir que utilizaremos la variable global dentro de nuestra función cuando nosotros queramos.

def main():
    global canv


Creamos nuestra ventana y definimos las dimensiones maximas y minimas que tendra con las funciones minsize y maxsize, además le asignamos un nombre con la función title

root = Tk() # creamos nuestra ventana
root.title("Tkinter") #nombre de nuestra ventana
root.minsize(250,300) # dimensiones máximas
root.maxsize(640,480) # dimensiones minimas


Lo que sigue es crear nuestro canvas con el método canv(), dentro de los parentesis escribiremos root, para definir que pertenece a nuestra ventana, despues definimos ancho y alto con with=, y heigth=, que seran igual a las dimensiones máximas que tendra nuestra ventana. Y por ultimo pueden definir un fondo con background= " " en mi caso elegí el color azul y cierran los paréntesis, y le damos pack() a nuestro canvas tal como los botones o menús que realizamos antes

canv = Canvas(root, width = 640, height = 480, background = "blue")
canv.pack()

Luego haremos con nuestro programa detecte el movimiento del mouse, tal como lo hicimos anteriormente. con la funcion bind la cual toma el argumento de motion y una funcion que sera dibuja... la cual mostrara el dibujo que tendra nuestro canvas... y ciclamos nuestro programa.

root.bind("<Motion>", dibuja) #funcion para detectar el movimiento del mouse y el dibujo que tendra nuestro canvas
root.mainloop() # cicla el programa


Nuestro codigo estaria asi por el momento:





Ahora relizaremos la funcion dibuja....

definimos nuestra funcion con def dibuja(dib): recibira el argumento dib y dentro de nuestra funcion como lo hicimos en la funcion main llamaremos a nuestra variable global con global canv

def dibuja(dib):
    global canv


Ahora usaremos la instruccion delete para borrar el rastro que dejemos al mover nuestro canvas con el mouse, de no tenerla veriamos el rastro y la pantalla se llenaria de nuestro canvas.

canv.delete(ALL)


Ya para terminar le daremos una forma a nuestro canvas, yo realize un circulo. Utilizamos la intruccion canv.create_oval() , la cual lleva 5 argumentos, los primeros dos son coordenadas, yo lo centre en el cursor dib.x-20, dib.y-20, los siguientes dos argumentos son para definir la forma dib.x+20, dib.y+20, y el ultimo argumento el color que le queramos asignar en este caso lo puse rojo fill = "red"

canv.create_oval(dib.x-20, dib.y-20, dib.x+20, dib.y+20, fill = "red")

Por ultimo al final de nuestro codigo llamamos a nuestra funcion main para que el programa corra
main()

El código quedó de la siguiente manera:



Ahora ejecutamos nuestro programa:




Ahora podremos hacer nuestra ventana mas grande o pequeña y mover el cursor con nuestra pelota :P

Bueno esto es todo, espero les sea de gran ayuda. Saludos

No comments:

Post a Comment