martes, 13 de mayo de 2014

Mostrar cajas de mensajes con EasyGUI


Continuamos conociendo más detalles del módulo EasyGUI después de la breve introducción del capítulo anterior.

A continuación, recorreremos las funciones que proporciona el módulo para construir ventanas de diálogos que muestren mensajes informativos y/o que ofrezcan al usuario la posibilidad de interactuar con el programa, permitiéndole elegir una opción entre varias posibles.

Las funciones disponibles son: msgbox(), boolbox(), ynbox(), buttonbox(), ccbox() e indexbox(). Algunas son demasiado parecidas.

Para probar los ejemplos es necesario importar con anterioridad el módulo easygui. En nuestro caso le asignaremos el nombre de referencia eg para que tenga su espacio de nombre propio:

import easygui as eg

Cada vez que tengamos que referirnos a alguna función del modulo lo haremos así:

eg.nombredefunción()



1) msgbox: caja de mensaje simple


La función msgbox() es para mostrar en pantalla una ventana con un mensaje simple y un único botón que pulsaremos para continuar la ejecución del programa:


eg.msgbox(msg='Caja de mensaje simple',
          title='Control: msgbox', 
          ok_button='Continuar',
          image=python.gif)

El argumento msg es el mensaje, title el título de la ventana, ok_button es el literal que se mostrará en el botón y, finalmente, image es la ruta y el nombre de un archivo de imagen que será mostrado en la ventana. Si image es None no se mostrará ninguna imagen.

 

2) boolbox (caja booleana) | ynbox (caja Sí/No)


Las funciones boolbox() y ynbox() son para mostrar en pantalla una ventana con un mensaje en forma de pregunta y dos botones que representan un par de respuestas del tipo “Sí” y “No”, “Aceptar” y “Cancelar”, etc. El programa no continuará hasta que no se elija alguna de las dos opciones.

Con EasyGUI 0.96: Si se elige la opción “Sí” la función devolverá el valor 1 y para la opción “No” la función devolverá el valor 0.

A partir de EasyGUI 0.97.4: Si se elige la opción “Sí” la función devolverá el valor True y para la opción “No” la función devolverá el valor False.



respuesta = eg.boolbox(msg='Caja booleana',
                       title='Control: boolbox',
                       choices=('Si(1)', 'No(0)'),
                       image=python.gif)

... ...
                     
respuesta = eg.ynbox(msg='Caja Sí/No',
                     title='Control: ynbox',
                     choices=('Si(1)', 'No(0)'),
                     image=None)


El argumento msg es el mensaje, title es el título de la ventana, choices es para asignar una tupla con las opciones “Sí” y “No” y, finalmente, image es para indicar la ruta y el nombre de un archivo de imagen que será mostrado en la ventana.

A partir de EasyGUI 0.97.4: tiene el argumento default_choice que permite resaltar uno de los botones de la ventana de diálogo, de tal forma, que si se presiona la tecla return esta opción será la elegida.


3) buttonbox: caja de botones


 
La función buttonbox() es para mostrar en pantalla una ventana con un mensaje en forma de pregunta y varios botones que representan las opciones o respuestas posibles. El programa no continuará hasta que no se elija alguna opción y la función devolverá el literal o etiqueta del botón elegido.


respuesta = eg.buttonbox(msg='Caja con varios botones',
                         title='Control: buttonbox',
                         choices=('(Sí)', '(No)', '(A veces)'),
                         image=python.png)


El argumento msg es el mensaje, title es el título de la ventana, choices es para asignar una tupla con las opciones posibles y, finalmente, image es la ruta y el nombre de un archivo de imagen que será mostrado en la ventana.

A partir de EasyGUI 0.97.4: tiene el argumento default_choice que permite resaltar uno de los botones de la ventana de diálogo, de tal forma, que si se presiona la tecla return esta opción será la elegida.

4) ccbox: caja de mensaje con lista botones


 
La función ccbox() es similar a la anterior, buttonbox().

Con EasyGUI 0.96: Si se elige la opción “Aceptar” la función devolverá el valor 1 y para la opción “Cancelar” la función devolverá el valor 0.

A partir de EasyGUI 0.97.4: Si se elige la opción “Aceptar” la función devolverá el valor True y para la opción “Cancelar” la función devolverá el valor False.


elemento = eg.ccbox(msg='Lista de botones, Aceptar: defecto', 
                    title='Control: ccbox', 
                    choices=('Aceptar(1)', 'Cancelar(0)'),
                    image=python.png)

A partir de EasyGUI 0.97.4: tiene el argumento default_choice que permite resaltar uno de los botones de la ventana de diálogo, de tal forma, que si se presiona la tecla return esta opción será la elegida.


5) indexbox: caja de mensaje y botones con índice

 
La función indexbox() es para mostrar en pantalla una ventana con un mensaje en forma de pregunta y varios botones que representan las opciones o respuestas posibles. El programa no continuará hasta que no se elija alguna opción y la función devolverá un número que se corresponde con el índice asignado a cada botón, comenzando desde el número 0.


opcion = eg.indexbox(msg='Botones con índice',
                     title='Control: indexbox',
                     choices=('Sí(0)', 'No(1)', 'Saltar(2)'),
                     image=None)


A partir de EasyGUI 0.97.4: tiene el argumento default_choice que permite resaltar uno de los botones de la ventana de diálogo, de tal forma, que si se presiona la tecla return esta opción será la elegida.



Ir al índice del tutorial de EasyGUI

4 comentarios:

andres alvarez dijo...

Hola, ya instale el easygui. y lo instale correctamente, pero no entiendo en donde tengo que colocar el codigo, en el mismo codigo que quiero ponerle la interfaz, o crear otro archivo, y donde y como tengo que colocar para que se habra la interfaz con ejecutando el codigo

Pherkad dijo...

Andrés, no es necesario crear ningún archivo aparte.
El interfaz es adecuado para la programación imperativa por lo que después de la línea "import easygui as eg" puedes utilizar cualquier "objeto" de EasyGui.

Unknown dijo...

Tengo una duda;
con el idle de pyhton, si pogo el codigo de programación, me funcionara? o debo usar algo especial?
Gracias

Pherkad dijo...

Unknown, el único requisito es haber instalado previamente el módulo EasyGUI. Dicho módulo está basado en Tkinter y lo normal es que se encuentre instalado.

En el siguiente enlace puedes ver cómo es la instalación: http://python-para-impacientes.blogspot.com.es/2014/05/easygui-la-interfaz-grafica-facil-i.html

Un saludo