[Python] Curso de Python con Interfaces graficas TK

Iniciado por Erik#, 23 Octubre 2008, 21:44 PM

0 Miembros y 1 Visitante están viendo este tema.

Erik#

Curso de Python con Interfaces graficas TK

1.Introducción

Me di cuenta de el lenguaje python complementandolo con TK (Tool Kit) se podria hacer cosas grandes, por eso, voy a enseñaros de lo más basico a crear juegos.
Puede que no llegueis a hacer juegos como con PyGame, porque, TK, principalmente es un entorno grafico más de texto, pero vereis que sera de gran utilidad.

Erik#

#1
2.Conseguimos TK

Principalmente, este curso sera orientado a Linux, por supuesto, hacia debian, pero igualmente, intentare ser muy global.
Para conseguir TK para python en windows con activepython o python 2.5.2 ya nos viene por defecto.

En Linux, para descargarlo, buscamos los paquetes python-tk si usamos algun deribado de debian o el mismo y si usamos otra distro buscamos por google...

Erik#

3.Activando los modulos de TK

Para activar los modulos de TK, nosotros utilizaremos esto:

Código (python) [Seleccionar]
from Tkinter import *

Hay otra forma que es:

Código (python) [Seleccionar]
import Tkinter

Pero yo aconsejo la primera, que es al que se lleva utilizando de toda la vida.

Erik#

#3
4.Creando un formulario (vacío)

Para crear los forms, primero importaremos:

Código (python) [Seleccionar]
from Tkinter import *

Despues, utilizaremos la función:

Código (python) [Seleccionar]
root = Tk()

Que creara un identificador, y por ultimo, cerramos el identificar:

Código (python) [Seleccionar]
root.mainloop()

El resultado del código total, sera:

Código (python) [Seleccionar]
from Tkinter import *
root = Tk()
root.mainloop()


Cuando inicieis esto, vereis que ya tenemos nuestro formulario vacío.

Erik#

5.Nuestra primera aplicación, hola mundo

Como siempre, en todos los lenguajes, la primera aplicación es hola mundo, y ahora vereis como se crea un label, espero que se os quede, porque aparte de crear la aplicación aprendemos lo basico sobre labels.
Primero, debemos poner todo el código que hemos aprendido al crear forms.

Código (python) [Seleccionar]
from Tkinter import *
root = Tk()
root.mainloop()


Y ahora, como os dije antes, root sera importante, fijaros:

Código (python) [Seleccionar]
holamundo = Label(root, text="¡Hola Mundo!")

Como veis, creamos el declarador llamado holamundo, que contiene un widget de caracter "LABEL", antes de nada, usaremos root para que el programa identifique esa funcion como tkinter, y luego, usamos una coma y ponemos text=, que sera la función que usaremos para introducir una variable, algun texto, etc...

Pero despues de esto, si lo comprobais antes de pasar a este siguiente punto, vereis que no sale nada o os da error.
Pues, para declarar este label en el form y ahora atentos, podreis utilizar dos formas, pack o grid, pack, hace un autoajuste y lo coloca donde el desea, pero con grid, puedes elegir columnas, lineas, situación...
Nosotros usaremos grid para elegir columnas y lineas, y ahora llega el toque final:

Código (python) [Seleccionar]
holamundo.grid(row=1, column=1)

Y ahora si juntamos todo:

Código (python) [Seleccionar]
from Tkinter import *
root = Tk()
holamundo = Label(root, text="¡Hola Mundo!")
holamundo.grid(row=1, column=1)
root.mainloop()

Ari--Slash

exeleeenteee.....

he buscado mucho uno claro como este

;D

gracias esta muy bueno

salu2

Erik#

Aun seguire haciendolo, esto solo es el principio.

Erik#

#7
6.Empezamos con los buttons

Los widgets buttons, sirven para efectuar una función.
Esa función se declara antes con def(): y despues se introduce una subfuncion en el button llamada command, pero eso lo veremos más tarde en este fasciculo.
Lo primero es la declaración de sintaxis:

Código (python) [Seleccionar]
nombre = Button(root, texto del boton, comando de funcion, tamaño de ancho y/o alto)
grid.nombre(linea, columna)


Esta sintaxis es la que necesitaremos para crear un button, ahora, profundicaremos en cada una de estas partes.
Primero, el texto del boton, es el tipico "label" que saldra en un boton, por ejemplo si queremos que el boton ponga "De acuerdo" escribiremos:
Código (python) [Seleccionar]
Button(... text="De acuerdo" ...)
En ese de acuerdo, podemos poner lo que queramos.
Ahora seguiremos con el comando de función, bueno, esto, antes de nada, tenemos que crear la función que queremos con lambda o def, nosotros usaremos def, bueno, la sintaxis de def es:

Código (python) [Seleccionar]
def nombre de la funcion():
   código de la función


En el nombre de la función, pondremos como queremos que se llame la función, en el ejemplo que haremos más adelante se llamara holamundo.
Y donde código de función ponemos el codigo que queremos, en nuestro caso para el ejemplo final pondremos:

Código (python) [Seleccionar]
holamundolbl = Label(root, text="Hola Mundo")
holamundolbl.grid(row=2, column=1)


Muy bien, una vez tenemos el nombre de la funcion y el código, donde command=, pondremos:

Código (python) [Seleccionar]
Button(...command=holamundo...)

Esto llamara a la función holamundo, y por ultimo, veremos el ancho o alto del button, nosotros por defecto siempre usaremos el width=20, que es el ancho de 20.

Código (python) [Seleccionar]
Button(...width=20)

Muy bien, ahora que ya tenemos nuestro button y sus partes, haremos el ejemplo:

Código (python) [Seleccionar]
def holamundo():
   holamundolbl = Label(root, text="Hola Mundo")
   holamundolbl.grid(row=2, column=1)
holamundo = Button(root, text="Activar Hola Mundo", command=holamundo, width=20)
holamundo.grid(row=1, column=1)


Muy bien, y ahora complementamos los modulos y funciones de formulario:

Código (python) [Seleccionar]
from Tkinter import *
def holamundo():
   holamundolbl = Label(root, text="Hola Mundo")
   holamundolbl.grid(row=2, column=1)
root = Tk()
holamundo = Button(root, text="Activar Hola Mundo",command=holamundo, width=20)
holamundo.grid(row=1, column=1)
root.mainloop()


Listo, lo probamos y et voila, button activado.

^Tifa^

Entonces puedo postear un tutorial de Perl/Tk??? o TCL/Tk por igual???  :laugh:

creo que seria interesante....

Por cierto, sino me equivoco esta linea :

root = Tk();

Inicia un objeto widget llamemosle parent window o ventana padre.

y esto :

root.mainloop();

Finaliza el objeto antes iniciado o ventana padre... y Mainloop es el encargado de manejar y manipular todos los eventos que ocurran durante el codigo digase, presionar botones, presentar una informacion en un cuadro de texto, etc...

;)

NetJoe

 
    Me parece muy bien tu tutorial, ya hace algunos meses que he estado desarrollando scripts usando python y ya le podre hacer una interfaz grafica a mis scripts.