Ir al contenido principal

Python: GUI con Tkinter Hola Mundo version 2

Ya mostré un hola mundo muy simple que para ir entendiendo como se usa Tkinter esta mas que bueno; En muchas ocasiones necesitaremos crear clases, para esto implementaremos una clase y realizaremos la versión 2 del clásico Hola Mundo!.


Copio y pego el código del archivo holamundo2.py

from Tkinter import *
class App:
    def __init__(self, master):
        frame = Frame(master)
        frame.pack()
        self.button = Button(frame, text="QUIT", fg="red", command=frame.quit)
        self.button.pack(side=LEFT)
        self.hi_there = Button(frame, text="Hello", command=self.say_hi)
        self.hi_there.pack(side=LEFT)
    def say_hi(self):
        print "hi there, everyone!"
root = Tk()
app = App(root)
root.mainloop()
Se crea una clase App de la siguiente manera class App, seguido de esto iniciamos la construcción de nuestra ventana, el constructor (the__init__method) es llamado con el widget padre (master), el constructor empieza creando un widget Frame, es el que contendrá nuestros demás widgets del script, después de esto se muestra el frame con frame.pack().

A continuación se crean dos botones hijos de Frame como se ve en el siguiente código:

 self.button = Button(frame, text="QUIT", fg="red", command=frame.quit)
 self.button.pack(side=LEFT)

El primero de ellos  self.button se crea a partir del widget padre frame, con el texto QUIT seguido de fg(foregorund) con un valor igual a rojo, y por ultimo se le asigna una función o comando que destruye el frame padre. La segunda parte  self.button.pack(side=LEFT) con el método pack se muestra dicho botón y se alinea a la izquierda del frame.

  self.hi_there = Button(frame, text="Hello", command=self.say_hi)
  self.hi_there.pack(side=LEFT)

El segundo botón es casi igual al anterior solo que este como comando o función llama a sel.say_hi que es un método que contiene dentro de el "hi there, everyone!", seguido de esto con la función pack se muestra alineado a la izquierda después de el primer botón. (Los botones en este caso se recorren una posición a la derecha y quedan lo mas a la izquierda posible).

Cuando se presiona el botón hello llama a esta pequeña función 

 def say_hi(self):
        print "hi there, everyone!"
La cual imprime en la terminal el texto entre comillas.

Finalmente creamos un widget padre TK, seguido de una instancia de la clase APP utilizando el widget root como su padre.

Al finalizar el método root.mainloop(), lo que logro entender ahora es que es un método que entra en un ciclo de repetición esperando a que root el widget padre sea destruido, si esto sucede el método es verdadero y se procede a destruir todo.

Por ultimo muestro como se ve el pequeño script corriendo muestro cuando hago click en el botón hello se genera el hi there, everyone!, en su defecto si se presiona en la X de la ventana o el botón Quit la ventanita se destruye..

Comentarios

Entradas populares de este blog

Google Docs: Activar poder ver el salto de páginas de un documento.

Ya tengo mucho tiempo usando Google Docs, de hecho puedo decir que mis documentos ya no los hago mas en ninguna suite ofimática instalada en mi computadora, la verdad es que Google Docs es un magnifico servicio, no hablare de sus pros y contras lo que les quiero comentar es que POR FIN GoogleDocs tiene la vista de el salto de página algo que yo estaba esperando hace mucho, me desesperaba mucho que al escribir no veía cuando empezaba o terminaba una página. El modo de activarlo es el siguiente lo mostrare en imagenes con un documento mio para que se vea mejor en donde se debe de hacer click. Como se muestra en la imagen para activar el poder ver el salto de página se debe de elegir "Paginated" , al hacer click se vera el salto de pagina automáticamente en el documento abierto en ese momento, si no te gusta ver este salto de pagina basta con dar click de nuevo en "Compact"  para eliminar estos saltos, que seguirán ahí pero ya no de forma visible. De nuevo cualquier

Arduino, Instalación en Debian Squeeze Linux.

La semana pasada pedí una placa Arduino Uno R3 la cual me llego el pasado lunes 11 de junio, no había tenido la oportunidad siquiera de sacar la placa de la bolsita donde me llego, debido a que estamos en finales de semestre y entre tantos proyectos y exámenes que tuve no encontraba ese hueco para jugar un rato con ella; pero hoy al fin ya estoy saliendo de los pendientes, así que como ya no tengo tanta carga de trabajos decidí abrir el paquete en el que venía el Arduino, digo paquete porque pedí otras cosas pero esas las mostraré conforme vaya jugando mas con la placa.  Acá una foto del paquete que recibí, (disculpen la calidad de las imágenes). Empezaremos a instalar el software necesario para controlar nuestra placa Arduino, lo haré en Debian Squeeze, como nota para entendernos mejor, cuando aparezca el símbolo #  en los comandos esto quiere decir que son ejecutados con permisos de administrador root. Pero bueno basta de detalles empecemos con el trabajo. 1.- Instalar

Utilidad: Gmail, Descargar archivos adjuntos de tus correos nuevos.

Sigo un blog interesante de un profesor de España pues bien hace ya un par de días vi este script en su blog y me gustaría compartirlos con ustedes, obviamente no lo hice yo pero vale la pena jugar con el un rato. El script esta programado en Python y se puede editar fácilmente, dicho script necesita que lo corras desde consola y la única función es leer tu bandeja de entrada (inbox) de gmail y si tienes correos nuevos con archivos adjuntos en este caso con extensión .jpg los descarga y coloca en una carpeta en donde se esta corriendo el script. Es fácil acomodarlo a nuestras necesidades, así que como a mi lo que mas me mandan son archivos .doc, lo modifique para que baje todos los archivos con extensión .doc de los correos nuevos que tenga en mi inbox. Por ejemplo si ustedes reciben muchos pdf lo pueden modificar facilmente, lo único que tienen que buscar es la siguiente linea cambiando ".jpg" por la extensión del archivo que quieran descargar.    elif src <> dest