elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.


 


Tema destacado: Manual Notepad++: ejemplos de uso plugin TextFX


+  Foro de elhacker.net
|-+  Programación
| |-+  Scripting (Moderadores: Leo Gutiérrez., Eleкtro)
| | |-+  [Python] Curso de Python con Interfaces graficas TK
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] 2 Ir Abajo Respuesta Imprimir
Autor Tema: [Python] Curso de Python con Interfaces graficas TK  (Leído 24,229 veces)
Erik#


Desconectado Desconectado

Mensajes: 1.138


Gundam


Ver Perfil
[Python] Curso de Python con Interfaces graficas TK
« en: 23 Octubre 2008, 21:44 »

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.


« Última modificación: 18 Junio 2009, 20:26 por Erik# » En línea

Erik#


Desconectado Desconectado

Mensajes: 1.138


Gundam


Ver Perfil
Re: Curso de Python e Interfaces graficas TK
« Respuesta #1 en: 23 Octubre 2008, 21:44 »

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...


« Última modificación: 21 Junio 2009, 22:07 por Erik# » En línea

Erik#


Desconectado Desconectado

Mensajes: 1.138


Gundam


Ver Perfil
Re: Curso de Python e Interfaces graficas TK
« Respuesta #2 en: 23 Octubre 2008, 21:45 »

3.Activando los modulos de TK

Para activar los modulos de TK, nosotros utilizaremos esto:

Código
  1. from Tkinter import *

Hay otra forma que es:

Código
  1. import Tkinter

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

Erik#


Desconectado Desconectado

Mensajes: 1.138


Gundam


Ver Perfil
Re: Curso de Python e Interfaces graficas TK
« Respuesta #3 en: 23 Octubre 2008, 21:45 »

4.Creando un formulario (vacío)

Para crear los forms, primero importaremos:

Código
  1. from Tkinter import *

Despues, utilizaremos la función:

Código
  1. root = Tk()

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

Código
  1. root.mainloop()

El resultado del código total, sera:

Código
  1. from Tkinter import *
  2. root = Tk()
  3. root.mainloop()

Cuando inicieis esto, vereis que ya tenemos nuestro formulario vacío.
« Última modificación: 25 Febrero 2009, 20:07 por Erik# » En línea

Erik#


Desconectado Desconectado

Mensajes: 1.138


Gundam


Ver Perfil
Re: Curso de Python e Interfaces graficas TK
« Respuesta #4 en: 23 Octubre 2008, 21:45 »

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
  1. from Tkinter import *
  2. root = Tk()
  3. root.mainloop()

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

Código
  1. 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
  1. holamundo.grid(row=1, column=1)

Y ahora si juntamos todo:

Código
  1. from Tkinter import *
  2. root = Tk()
  3. holamundo = Label(root, text="¡Hola Mundo!")
  4. holamundo.grid(row=1, column=1)
  5. root.mainloop()
En línea

Ari--Slash

Desconectado Desconectado

Mensajes: 152



Ver Perfil
Re: Curso de Python e Interfaces graficas TK
« Respuesta #5 en: 23 Octubre 2008, 21:55 »

exeleeenteee.....

he buscado mucho uno claro como este

 ;D

gracias esta muy bueno

salu2
En línea

Erik#


Desconectado Desconectado

Mensajes: 1.138


Gundam


Ver Perfil
Re: Curso de Python e Interfaces graficas TK
« Respuesta #6 en: 23 Octubre 2008, 22:06 »

Aun seguire haciendolo, esto solo es el principio.
En línea

Erik#


Desconectado Desconectado

Mensajes: 1.138


Gundam


Ver Perfil
Re: Curso de Python e Interfaces graficas TK
« Respuesta #7 en: 23 Octubre 2008, 22:18 »

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
  1. nombre = Button(root, texto del boton, comando de funcion, tamaño de ancho y/o alto)
  2. 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
  1. 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
  1. def nombre de la funcion():
  2.   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
  1. holamundolbl = Label(root, text="Hola Mundo")
  2. 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
  1. 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
  1. Button(...width=20)

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

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

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

Código
  1. from Tkinter import *
  2. def holamundo():
  3.   holamundolbl = Label(root, text="Hola Mundo")
  4.   holamundolbl.grid(row=2, column=1)
  5. root = Tk()
  6. holamundo = Button(root, text="Activar Hola Mundo",command=holamundo, width=20)
  7. holamundo.grid(row=1, column=1)
  8. root.mainloop()

Listo, lo probamos y et voila, button activado.
« Última modificación: 21 Junio 2009, 22:09 por Erik# » En línea

^Tifa^


Desconectado Desconectado

Mensajes: 2.802


Ver Perfil
Re: Curso de Python e Interfaces graficas TK
« Respuesta #8 en: 24 Octubre 2008, 15:04 »

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...

 ;)
En línea

NetJoe

Desconectado Desconectado

Mensajes: 5


Ver Perfil
Re: Curso de Python e Interfaces graficas TK
« Respuesta #9 en: 24 Octubre 2008, 16:30 »

 
    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.
En línea

TonyElGordo

Desconectado Desconectado

Mensajes: 4


Ver Perfil
Re: Curso de Python e Interfaces graficas TK
« Respuesta #10 en: 2 Diciembre 2008, 15:53 »

Que bueno, espero que lo continues.
A mi me da error cuando añado dentro de text= caracteres como ¡ .

Dice que Non-ASCII character... Pero lo quito y va genial.
En línea

Erik#


Desconectado Desconectado

Mensajes: 1.138


Gundam


Ver Perfil
Re: Curso de Python e Interfaces graficas TK
« Respuesta #11 en: 4 Diciembre 2008, 22:11 »

Seguire pero ahora no tengo tiempo, gracias por seguirlo.
En línea

Erik#


Desconectado Desconectado

Mensajes: 1.138


Gundam


Ver Perfil
Re: Curso de Python con Interfaces graficas TK
« Respuesta #12 en: 10 Diciembre 2008, 17:49 »

7.Utilizamos TextBox's


Los textbox's en Python principalmente, hasta más adelante los usaremos con Strings, osea así, cadenas de texto.
Antes que nada, tendriamos que declarar el nombre del textbox como variable de string, eso lo podemos hacer poniendo esto:

Código
  1. mi_variable_string = StringVar()

De esta manera, mi_variable_string que seria el nombre de vuestra variable, sera identificada como String, ahora, vamos a la declaración del textbox.

Código
  1. el_nombre_de_nuestro_textbox = Entry(root, textvariable=mi_variable_string)

De esta manera, nuestro textbox cuando escribamos almacenara ese texto en la variable mi_variable_string.
Para utilizar las variables de string de los TextBox, cuando empleemos ese contenido, tendremos que hacerlo incluyendo .get() al final, nuestro resultado quedaria así, imaginaos que ahora lo queremos mostrar por consola y no por grafica, quedaria algo así:

Código
  1. print mi_variable_string.get()

Espero que os haya gustado esta lección, más adelante aprenderemos a usar numeros en este tipo de variables.
En línea

Erik#


Desconectado Desconectado

Mensajes: 1.138


Gundam


Ver Perfil
Re: Curso de Python con Interfaces graficas TK
« Respuesta #13 en: 25 Febrero 2009, 14:17 »

8.CheckBox & IntVar()

Bueno, despues de estar muerto varios meses (2) he decidido continuarlo y lo continuamos con el checkbox e introduciendo las variables numericas en Tk.
Cuando comence con esto del PyTk habia un error que me mataba, no sabia construir variables numericas en Python, pero pensando un poco probe varias combinaciones IntegerVar(), VarInt(), VarInteger()... hasta que probe IntVar() y lo consegui, el resultado de una variable numerica:

Código
  1. mi_int_var = IntVar() # Creando una variable numerica

Y bien, volviendo al tema principal, hablaremos sobre los checkbox, para los que no sabes que es, son unos cuadrados de selección que se utilizan en formularios de contacto, supscripción... Estos cuadrados a diferencia de los RadioButton (los veremos más adelante) solo puede haber 1 clickeado.

Bueno, la syntax del widget checkbutton es la siguiente:

Código
  1. check = CheckButton(root, text="Lo que saldra al lado", var=variable_que_usaremos)
  2. check.grid()

Donde check seria el nombre de nuestro widget, CheckButton indicamos que sera un Cuadrado de selección, root es nuestro identificador, Lo que saldra al lado es lo que saldria al lado para informar que pasa o que seleccionas al clickar ese cuadrado y variable_que_usaremos es la variable con la que identificamos nuestro checkbutton.

Un ejemplo sencillo seria este:

Código
  1. var = IntVar()
  2. check = Checkbutton(root, text="Hola mundo", variable=var)
  3. check.grid()

Y ahora podriamos saber si ese cuadrado ha sido seleccionado haciendo un if:

Código
  1. def funcion_presionada_por_button():
  2.   if var.get():
  3.      print "El checkbutton fue seleccionado"
  4.   else:
  5.      print "El checkbutton no fue seleccionado"
  6.  

De esta manera le decimos que si la variable var del checkbutton contiene algo osea así una seleccion nos salga algo y por contra otra cosa, donde funcion_presionada_por_button es la funcion o mejor llamado el command que llamamos desde un button creado por nosotros.

Y ahora, os dejo un ejemplo total para que practiqueis y lo veais más claro:

Código
  1. from Tkinter import *
  2. def verificar():
  3. if var.get():
  4. print "El checkbutton fue seleccionado"
  5. else:
  6. print "El checkButton no fue seleccionado"    
  7. root = Tk()
  8. var = IntVar()
  9. check = Checkbutton(root, text="Seleccionado/ No seleccionado", variable=var)
  10. cm = Button(root, text="Verificar", command=verificar, width=20)
  11. check.grid()
  12. cm.grid()
  13. root.mainloop()

Si me equivoque en algo o quereies preguntar algo, postear.
En la próxima lección aprenderemos los textarea :)
En línea

Páginas: [1] 2 Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
[Python] Kaley, Keylogger simple en Python
Scripting
Fyrox 0 2,453 Último mensaje 21 Septiembre 2011, 23:24
por Fyrox
Sistema operativo en Python (sí, en Python) « 1 2 3 »
Programación General
GeorgArming 36 7,770 Último mensaje 8 Julio 2012, 02:53
por laychopy
[Python] Sacarle todo el provecho a Python
Scripting
Trenico 3 1,825 Último mensaje 19 Enero 2012, 11:39
por fallout20xx
¿Hay muchas diferencias entre python 2.x y python 3.x?
Programación General
bichotg 2 2,135 Último mensaje 21 Febrero 2012, 16:19
por bichotg
[Python] ¿Por qué Python 2.7.3 admite la sintaxis de Python 3?
Scripting
Yidu 10 2,635 Último mensaje 10 Febrero 2013, 21:46
por Eleкtro
Powered by SMF 1.1.19 | SMF © 2006-2008, Simple Machines