martes, 20 de mayo de 2014

Entrada de datos con EasyGUI

Después de ver en el capítulo anterior las funciones que se utilizan para mostrar ventanas de mensajes, continuamos con algunas de las funciones que permiten a los usuarios crear ventanas de diálogo para introducir datos en un programa: enterbox(), integerbox(), codebox(), textbox() y multenterbox().

1) enterbox: entrada de texto



La función enterbox() se utiliza para mostrar una ventana donde se permite introducir una cadena de texto.

El argumento strip si tiene el valor True suprime los espacios al principio y final de la cadena introducida, default contiene la cadena inicial y editable que será mostrada en la ventana, title es el título de la ventana, msg es el mensaje de la ventana e image sirve para indicar la ruta y el nombre de una imagen a mostrar.

texto = eg.enterbox(msg='Entrada de texto:',
                                title='Control: enterbox',
                                default='EasyGUI', strip=True,
                                image=None)


2) integerbox: entrada de número entero



La función integerbox() se usa para mostrar una ventana con una caja donde es posible introducir un número entero. El valor introducido no será aceptado hasta que sea un número entero. Si se han establecido los límites mínimo y máximo (con los argumentos lowebound y upperbound) el número deberá ajustarse a éstos.

num = eg.integerbox(msg='Entrada de número (0-99):',
                    title='Control: integerbox',
                    default='',
                    lowerbound=0,
                    upperbound=99,
                    image=None)


3) codebox y textbox: cajas de texto editable



Las funciones codebox() y textbox() se utilizan para mostrar una ventana con una caja de texto que le permite al usuario introducir o editar texto en varias líneas. También, estas cajas pueden emplearse para mostrar los elementos de una lista, una tupla o las líneas de un archivo con la posibilidad de editar la información. La diferencia entre codebox() y textbox() está en la fuente que se utiliza por defecto para mostrar el texto. Con codebox() la fuente es proporcional, que es más adecuada para editar el código fuente de los programas.

En la función codebox() el argumento msg es para el mensaje, title es para el título de la ventana y text es para establecer el texto inicial que será mostrado en la ventana. La función texbox() cuenta además con el argumento codebox que con el valor “1” fija la fuente en proporcional.

texto = ['En este espacio puede cargar una lista, una tupla\n',
         'las líneas de un archivo y... después editarlo']
  
texto1 = eg.codebox(msg='Entrada de fuente',
                    title='Control: codebox',
                    text=texto)
  
texto2 = eg.textbox(msg='Entrada de texto:',                                        
                    title='Control: textbox',
                    text='', codebox=0)

       
4) multenterbox: entrada múltiple



La función multenterbox() muestra una ventana que permite introducir al usuario los datos de varios campos.

El argumento fields es una lista con los literales que identifican a cada campo y el argumento values es una tupla que contiene los valores iniciales de cada campo y es opcional.
  
campos = ['Nombre', 'Correo', 'Tel']
datos = []
datos = eg.multenterbox(msg='Entrada múltiple',
                        title='Control: multenterbox',
                        fields=campos, values=())
cadena = ''
if datos != None:
    for cam, dat in zip(campos,datos):
        cadena = cadena + cam + ': ' + dat+ '\n'
   
eg.msgbox(cadena, 'multenterbox', ok_button='Seguir')

Ir al índice del tutorial de EasyGUI

1 comentario:

Hugo dijo...

Hola!! a mi la función integerbox() me da un error cuando la ejecuto:

num = eg.integerbox(msg='Entrada de número (0-99):',
title='Control: integerbox',
default='',
lowerbound=0,
upperbound=99,
image=None)


Me da este error:

Traceback (most recent call last):
File "/home/hugo/Documentos/Archivos python - pruebas/Carpeta sin título/easygui01.py", line 20, in
image=None)
File "/usr/local/lib/python3.4/dist-packages/easygui/boxes/derived_boxes.py", line 290, in integerbox
default = convert_to_type(default, int, "default")
File "/usr/local/lib/python3.4/dist-packages/easygui/boxes/derived_boxes.py", line 243, in convert_to_type
ret_value = new_type(input_value)
ValueError: invalid literal for int() with base 10: ''


No llego a escribir nada :(