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