UNIVERSIDAD DON BOSCO FACULTAD DE ESTUDIOS TECNOLÓGICOS ESCUELA DE COMPUTACIÓN CICLO: 01/2015 GUIA DE LABORATORIO #8 Nombre de la Practica: Manejo de Xdialog. Lugar de Ejecución: Laboratorio de Redes, Edificio 3 del CITT Tiempo Estimado: 2:30 MATERIA: Aplicaciones Para Redes DOCENTES: Denis Altuve, Marvin Martínez I. OBJETIVOS Que el estudiante: Comprenda el manejo de las librerías. Pueda implementarlas según sus necesidad. II. INTRODUCCION TEORICA X-Dialog permiten el uso de ventanas y “cajas” para hacer la experiencia de interactuar con un programa mas amena y mas fácil de entender por el usuario. Xdialog es un buen substituto de dialog , y pose numerosas opciones típicas en cualquier lenguaje, crear entradas de texto, lista de botones, botones de confirmación, diálogos yes-no, opción de abrir archivo, texto editable, etc... Ten en cuenta que Xdialog es compatible con dialog pero no al revés, es decir, todos los scripts hechos con dialog funcionarán con Xdialog, puesto que este último acepta todas las opciones de dialog además de ofrecer más funcionalidades. Un ejemplo es la ventana de menú, en dialog se llama "menu" y en Xdialog "menubox", aunque Xdialog también acepta la sintaxis de dialog e interpreta "menu" como "menubox". Es buena práctica por tanto, usar "menu" y así tus scripts podrán correr tanto en las X como en un terminal. III. MATERIALES Y EQUIPO Para la No. 1 2 realización de la guía de práctica se requerirá lo siguiente: Requerimiento PC de escritorio con Linux Guía de laboratorio Cantidad 1 1 IV. PROCEDIMIENTO Parta poder utilizar las cajas de texto y las opciones comunes, siempre tiene que anteponerse la palabra dialog. Digiter cada uno de los pasos que a continuación se presentan, interpretarlo y cualquier duda preguntar al docente: Aplicaciones Para Redes 1 Guía # 8: Manejo de Xdialog. 1.Msgbox: Utilizado para mandar un mensaje en la cual se terminara hasta que el usuario de aceptar. SYNOPSIS --msgbox text height width Ejemplo 1 Ejemplo 2 Xdialog --msgbox "Hola" 0 0 Xdialog --msgbox "Hola" 0 0;\ case $? in 0)echo 0;; 255)echo 255;; esac #devuelve 0 si se da click en o. #devuelve 255 si se da click en la x. Ejemplo 3 Resultado #!/bin/bash DIALOG=Xd|ialog $DIALOG --title "MESSAGE BOX" \ --icon warning.xpm \ --msgbox "Este es un mensaje con icono" 0 0 case $? in 0) echo "OK";; 255) echo "Box closed.";; esac 2. Yesno: Utilizado para esperar una respuesta del usuario en la cual se espera que sea si ò en caso contrario no SYNOPSIS --yesno <text> <height> <width> Ejemplo 1 Ejemplo 2 Xdialog --title "Titulo" --yesno "¿Quieres salir de #!/bin/bash la aplicacion?" 0 0 Xdialog --title "Titulo" --yesno "¿Quieres salir de la aplicacion?" 0 0 case $? in 0)echo 0;; 1)echo 1;; 255)echo 255;; esac Aplicaciones Para Redes 2 Guía # 8: Manejo de Xdialog. Ejemplo 3 Ejemplo 4 Xdialog --title "Titulo" --help "Aqui va la Ayuda" #!/bin/bash --yesno "Quieres salir de la aplicacion" 0 0 Xdialog --title "Titulo" --help "Aqui va la Ayuda" --yesno "Quieres salir de la aplicacion" 0 0 case $? in 0)echo 0;; 1)echo 1;; 255)echo 255;; esac 3. Infobox : Utilizado para mandar mensajes al usuario, que depende de un tiempo o hasta que se presiona OK. <timeout>=tiempo para cerrar el infobox, tiempo en milisegundos. SYNOPSIS --infobox <text> <height> <width> [<timeout>] Ejemplo1: Xdialog --infobox "Mensaje" 0 0 5000 4.inputbox: Utilizado para crear una caja de texto. <init>=valor por defecto que aparecerá en la caja. SYNOPSIS --inputbox <text> <height> <width> [<init>] Ejemplo 1 Ejemplo 2 Xdialog --backtitle "Titulo de fondo" --title if Xdialog --backtitle "Titulo de fondo" --title "Titulo" --inputbox "Ingrese su nombre" 0 0 "Titulo" --inputbox "Ingrese su nombre" 0 0 "Rafael" "Rafael" 2>algo then echo "Valor que se encuentra en el archvivo algo" cat algo else echo "Apretastes algo diferente de OK" fi Ejemplo 3 Resultado #!/bin/bash var=$(Xdialog --stdout --backtitle "Titulo de fondo" --title "Titulo" --inputbox "Ingrese su nombre" 0 0 "Rafael") case $? in 0) echo "Valor ingresado: $var";; 1) echo "Presiono Cancelar";; 255) echo "Presiono en la \"x\" para cerrar la caja";; esac Aplicaciones Para Redes 3 Guía # 8: Manejo de Xdialog. Ejemplo4: Solamente que utilizamos una de las opciones para que los caracteres se vean en forma de asteriscos. Xdialog --password --backtitle "Titulo de fondo" --title "Titulo" --inputbox "Ingrese su nombre" 0 0 "Rafael" 5. 2inputsbox: Utilizada para tener dos cajas de texto si se le agrega la opción de password, el password queda por defecto a la ultima caja. SYNOPSIS --2inputsbox <text> <height> <width> <label1> <init1> <label2> <init2> Ejemplo 1 Ejemplo2 Xdialog --password --2inputsbox "Validacion de usuario" 0 0 if Xdialog --password --2inputsbox "Validacion "Ingrese su nombre" "" "Ingrese su password" "" de usuario" 0 0 "Ingrese su nombre" "" "Ingrese su password" "" 2>algo then echo "Valor que se encuentra en el archvivo algo" usuario=` cat algo | awk -F/ '{ print $1 }'` password=` cat algo | awk -F/ '{ print $2 }'` echo "Usuario:" $usuario echo "Password:" $password else echo "Apretastes algo diferente de OK" fi Resultado en consola: Valor que se encuentra en el archvivo algo Usuario: Rafael Password: Torres Aplicaciones Para Redes 4 Guía # 8: Manejo de Xdialog. Ejemplo 3 Resultado #!/bin/bash var=$(Xdialog --stdout --password --2inputsbox "Validacion de usuario" 0 0 "Ingrese su nombre" "" "Ingrese su password" "") case $? in 0)usuario=$(echo $var | awk -F/ '{ print $1 }') password=$(echo $var | awk -F/ '{ print $2 }') if [ -z $usuario ] then Xdialog --infobox "Debe de ingresar un usuario" 0 0 5000 ./prueba.sh fi if [ -z $password ] then Xdialog --infobox "Debe de ingresar contraseña" 0 0 5000 ./prueba.sh fi echo "Usuario:" $usuario echo "Password:" $password;; 1) echo "Cancelar";; 255) echo "X";; esac una 6. 3inputsbox: Utilizada para tener tres cajas de texto si se le agrega la opción de password, el password queda por defecto a la ultima caja. SYNOPSIS --3inputsbox <text> <height> <width> <label1> <init1> <label2> <init2> <label3> <init3> Xdialog --password --3inputsbox "Validacion de if Xdialog --password --3inputsbox "Validacion de usuario" 0 0 "Ingrese su nombre" "" "Ingrese su usuario" 0 0 "Ingrese su nombre" "" "Ingrese su apellido" "" "Ingrese su password" "" 2>algo apellido" "" "Ingrese su password" "" then echo "Valor que se encuentra en el archvivo algo" usuario=` cat algo | awk -F/ '{ print $1 }'` apellido=` cat algo | awk -F/ '{ print $2 }'` password=` cat algo | awk -F/ '{ print $3 }'` echo "Usuario:" $usuario echo "Apellido:" $apellido echo "Password: " $password else echo "Apretastes algo diferente de OK" fi Aplicaciones Para Redes 5 Guía # 8: Manejo de Xdialog. 7. Gauge : Sirve para crear una barra de progreso. SYNOPSIS --gauge <text> <height> <width> [<percent>] Ejemplo 1 Ejemplo 2 (echo "25" ; sleep 3 x=0 echo "50" ; sleep 3 ( echo "75" ; sleep 3 while [ $x -le 100 ] echo "100" ; sleep 3 do )| Xdialog --title "GAUGE" --gauge "...:::Instalando:::..." 000 if [ "$?" = 255 ] ; then echo "Box closed !" fi #comando de aplicacion echo $x x=$( expr $x + 25 ) sleep 3 done ) | Xdialog ---title "...:::Instalando:::..." 0 0 0 Ejemplo 3 "GAUGE" Resultado para los 3 ejemplo ( for I in 25 50 75 100 do echo $I sleep 3 done ) | Xdialog --gauge "...:::Instalando:::..." 0 0 0 8.Textbox : Utilizado para leer un archivo. SYNOPSIS --textbox <file> <height> <width> Resultado Ejemplo Xdialog --title "EDIT BOX" --textbox menu.sh 24 75 case $? in 0) echo "OK";; 1)echo "Cancel pressed.";; 255)echo "Box closed.";; esac Aplicaciones Para Redes 6 --gauge Guía # 8: Manejo de Xdialog. 9.Editbox: Utilizado para leer una archivo y así poder editarlo y luego redireccionarlo cuando damos ok. SYNOPSIS --editbox <file> <height> <width> Ejemplo Resultado Xdialog --title "EDIT BOX" --editbox menu.sh 24 75 2>algo case $? in 0)cat algo echo "OK";; 1) echo "Cancel pressed.";; 255)echo "Box closed.";; esac 10.Menubox: Se utiliza para crear menús, se redirecciona a alguna archivo el cual contendrá el valor de la opción seleccionada. SYNOPSIS --menubox <text> <height> <width> <menu height> <tag1> <item1> {<help1>}. Ejemplo1: Xdialog --menu "MENU" 10 30 3 1 red 2 greem 3 blue Aplicaciones Para Redes 7 Guía # 8: Manejo de Xdialog. Ejemplo 2 Ejemplo 3 #!/bin/bash Xdialog --menu "MENU" 10 30 3 1 red 2 green 3 blue 2>algo.txt;\ case $? in 0) echo "Escogistes la opcion de aceptar" var=$(cat algo.txt) rm -f algo.txt case $var in 1) Xdialog --msgbox "Escogistes la opcion 1: RED" 5 35;; 2) Xdialog --msgbox "Escogistes la opcion 2: GREEN" 5 35;; 3) Xdialog --msgbox "Escogistes la opcion 3: BLUE" 5 35;; esac ;; 1) Xdialog --infobox "Escogistes la opcion de cancelar" 8 45 5000;; esac #!/bin/bash var=$(Xdialog --stdout --menu "MENU" 10 30 3 1 red 2 green 3 blue) case $? in 0) echo "Escogistes la opcion de aceptar" case $var in 1) Xdialog --msgbox "Escogistes la opcion 1: RED" 5 35;; 2) Xdialog --msgbox "Escogistes la opcion 2: GREEN" 5 35;; 3) Xdialog --msgbox "Escogistes la opcion 3: BLUE" 5 35;; esac ;; 1) Xdialog --infobox "Escogistes la opcion de cancelar" 8 45 5000;; esac 11.Buildlist: Utilizado para agregar aquellos item que se desean seleccionar. SYNOPSIS --buildlist <text> <height> <width> <list height> <tag1> <item1> <status1> Aplicaciones Para Redes 8 Guía # 8: Manejo de Xdialog. Resultado: En consola se podra observar este resultado: The user-built list is 1|3|4|6 12.Checklist: Utilizado para que el usuario escoja varias opciones. Paramentros: <text>:texto <height>:alto <width>:ancho <list height>:altura de la lista SYNOPSIS --checklist <text> <height> <width> <list height> <tag1> <item1> <status1> Aplicaciones Para Redes 9 Guía # 8: Manejo de Xdialog. Ejemplo 1 Ejemplo 2 Xdialog --backtitle "Checklist" --separator "|" \ cheklist=`Xdialog --backtitle "Checklist" --title "CHECKLIST BOX" \ --separator "|" --stdout --title "CHECKLIST BOX" \ --checklist "Escoja su equipo favorito" 0 0 --checklist "Escoja su equipo favorito" 0 0 5\ 5\ "1" "Barcelona" on \ "1" "Barcelona" on \ "2" "Sevilla" on \ "2" "Sevilla" on \ "3" "Real Madrid" off \ "3" "Real Madrid" off \ "4" "Valencia" on \ "4" "Valencia" on \ "5" "Villareal" off \ "5" "Villareal" off \ "6" "Real Betis" off 2> algo.txt "6" "Real Betis" off ` case $? in case $? in 0) 0) valores=`cat algo.txt` echo $cheklist;; echo $valores;; 1) 1) echo "Presinastes cancelar";; echo "Presinastes cancelar";; 255) 255) echo "Cierre de Checklist";; echo "Cierre de Checklist";; esac esac Resultado: en consola de lo que tiene el archivo algo.txt 1|2|4 ->A partir del resultado deberá mostrar en una ventana de Xdialog los nombres de cada valor seleccionado. 13. Radiolist: Utilizado para que el usuario escoja varias opciones. Paramentros: <text>:texto <height>:alto <width>:ancho <list height>:altura de la lista SYNOPSIS --radiolist <text> <height> <width> <list height> <tag1> <item1> <status1> Aplicaciones Para Redes 10 Guía # 8: Manejo de Xdialog. Ejemplo1 Ejemplo 2 radiolist=`Xdialog --backtitle "Radiolist" Xdialog --backtitle "Radiolist" \ --stdout \ --title "RADIOLIST BOX" \ --title "RADIOLIST BOX" \ --radiolist "Escoja su equipo favorito" 0 0 5 \ --radiolist "Escoja su equipo favorito" 0 0 5 \ "Barcelona" "Barcelona" on \ "1" "Barcelona" on \ "Sevilla" "Sevilla" on \ "2" "Sevilla" on \ "Madrid" "Real Madrid" off \ "3" "Real Madrid" off \ "Valencia" "Valencia" on \ "4" "Valencia" on \ "Villarreal" "Villarreal" off \ "5" "Villarreal" off \ "Betis" "Real Betis" off 2>algo.txt "6" "Real Betis" off ` case $? in 0) case $? in radiolistt=`cat algo.txt` 0) rm algo.txt echo $radiolist;; echo $radiolistt;; 1) 1) echo "Presinastes cancelar";; echo "Presinastes cancelar";; 255) 255) echo "Cierre de Radiolist";; echo "Cierre de Radiolist";; esac esac Resultado de ejemplo2 ->A partir del equipo seleccionado mostrar en una ventana que se mantenga activa durante 5 segundos un mensaje que diga “Para mi este es el mejor equipo del mundo nombre_equipo_seleccionado”. Aplicaciones Para Redes 11 Guía # 8: Manejo de Xdialog. 14. Treeview: Utilizado para crear un menú tipo árbol. SYNOPSIS --treeview <text> <height> <width> <list height> <tag1> <item1> <status1> <item_depth1> Ejemplo Resultado arbol=`Xdialog --stdout --title "TREE VIEW BOX" \ --treeview "treeview box demo" 18 32 4 \ tag1 uno off 0 \ tag2 uno_1 on 1 \ tag3 uno_1_1 off 2 \ tag4 dos off 0 \ tag5 dos_1 off 1 \ tag6 dos_1_1 off 2 \ tag7 dos_2 off 1 \ tag6 dos_2_1 off 2 \ tag6 dos_2_1_1 off 3 \ tag6 dos_2_1_2 off 3` case $? in 0) echo "$arbol";; 1) echo "Presionaste cancelar";; 255) echo "Cierre de la caja";; esac ->Crear una ventana que se que se vea como la siguiente y al seleccionar un sistema operativo mostrar el resultado en otra ventana. Aplicaciones Para Redes 12 Guía # 8: Manejo de Xdialog. 15.Combobox SYNOPSIS --combobox <text> <height> <width> <item1> ... <itemN> Ejemplo Resultado combobox=`Xdialog --backtitle "Combobox" --stdout \ --title "COMBOBOX" \ --combobox "Escoja su equipo favorito" 0 0 \ Barcelona \ Sevilla\ "Real Madrid"\ Valencia\ Villarreal\ "Real Betis"` case $? in 0) echo $combobox;; 1) echo "Presinastes cancelar";; 255) echo "Cierre de Radiolist";; esac ->Crear un combobox el cual contenga cuatro materias técnicas de la carrera, las que mas le gusten al seleccionar una mostrar en otra ventana el resultado. 16. Rangebox SYNOPSIS --rangebox <text> <height> <width> <min value> <max value> [<default value>] Ejemplo Resultado VOLUME=`Xdialog --stdout --title "RANGE BOX" – rangebox \ "fijar el volumen" 0 0 0 12 6` case $? in 0) echo "El volumen es de: $VOLUME.";; 1) echo "Presionastes cancelar";; 255) echo "Cierre de la caja";; esac 17. 2Rangesbox SYNOPSIS --2rangesbox <text> <height> <width> <label1> <min1> <max1> <def1> <label2> <min2> <max2> <def2> Aplicaciones Para Redes 13 Guía # 8: Manejo de Xdialog. Ejemplo Resultado VOLUME=`Xdialog --stdout --separator " " --title "RANGE BOX" --2rangesbox "Escoja los volumenes" 0 0 "Volumen1" 0 12 6 "Volumen2" 1 6 3` case $? in 0) echo "El volumen es de: $VOLUME.";; 1) echo "Presionastes cancelar";; 255) echo "Cierre de la caja";; esac 18. Fselect Utilizado para seleccionar archivos. SYNOPSIS --fselect <file> <height> <width> Ejemplo Xdialog --fselect /root/Desktop/ 0 0 19. Dselect Utilizado para seleccionar directorios SYNOPSIS --dselect <directory> <height> <width> Ejemplo: Xdialog --dselect / 0 0 Aplicaciones Para Redes 14 Guía # 8: Manejo de Xdialog. 20. Colorsel SYNOPSIS --colorsel <text> <height> <width> [<red> <green> <blue>] Ejemplo: Xdialog --colorsel "Colores" 0 0 Salida en consola: 255 255 255 21. Calendar SYNOPSIS --calendar <text> <height> <width> [<day> <month> <year>] Ejemplo Xdialog --calendar "Calendario" 0 0 19 2 1986 Salida de en Consola:19/02/1986 22. Timebox SYNOPSIS --timebox <text> <height> <width> [<hours> <minutes> <seconds>] Ejemplo Xdialog --timebox Tiempo 0 0 12 4 5 Salida en consola: 01:02:06 23.Spinbox SYNOPSIS --spinbox <text> <height> <width> <min value> <max value> <default value> <label> Ejemplo Xdialog --title "Titulo de la ventana" --spinbox "¿Qué nota le das a esta charla" 0 0 1 10 01 "Nota" Aplicaciones Para Redes 15 Guía # 8: Manejo de Xdialog. De forma similar a la opción inputbox, existen también –2rangesbox, –3rangesbox, –2spinsbox y – 3spinsbox. Formato de Botones Xdialog --buttons-style icon --yesno "Desea salir de la aplicacion" 0 0 Xdialog --buttons-style text --yesno "Desea salir de la aplicacion" 0 0 Xdialog --ok-label Aceptar --cancel-label Cancelar --yesno "Desea salir de la aplicacion" 00 Xdialog --no-buttons --infobox "Desea salir de la aplicacion" 0 0 5000 Xdialog --no-close --menu "Menu" 0 0 3 1 "Tabla de Multiplicar" 2 "Factorial" 3 Salir (Desactivamos la x de salida, aunque se de click no responderá) Aplicaciones Para Redes 16 Guía # 8: Manejo de Xdialog. V. DISCUSION DE RESULTADOS ->Crear un programa que simule a una agenda, la cual permitirá -Agregar contacto -Eliminar contacto -Buscar contacto -Eliminar contacto La opción de Agregar contacto deberá solicitar un nombre corto, el nombre completo y su correo electrónico. La opción de Eliminar contacto permitirá eliminar un contacto ingresando el nombre corto del contacto. La opción Buscar contacto permitirá buscar el contacto por medio de su nombre corto. La opción eliminar contacto eliminara el contacto por medio de su nombre corto. Debe existir un opción que permitirá ver todos los contactos. Debe existir una opción de salir. Nota: el programa deberá terminar únicamente con la opción salir, si da click en la “X” esta no deberá hacer nada, esto debe ser en todas las ventanas. ->Crear un script el cual solicitara el nombre de un archivo, luego pedirá los permisos (rwx) del dueño, permisos (rwx) del grupo y los permisos (rwx) de los demás usuarios y por ultimo deberá mostrar los permisos del archivo, el script deberá estar validado en todo aspecto por ejemplo si se le pasa un directorio y no un archivo regular mostrar un mensaje de error. ->Crear un script que me permita llamar a cada uno de los ejemplos por medio de una ventana de menú de Xdialog, el programa deberá mantenerse activo y deberá terminar solo cuando el usuario le de click al botón de salir del menú principal, caso contrario se mantendrá activo. Aplicaciones Para Redes 17
© Copyright 2025 ExpyDoc