Ambientes Visuales
Sabemos que es importante generar una interacción con nuestro software, no solo desde terminal, sino que este pueda ser atractivo visualmente, para este fin obviamente es necesario auxiliarnos de elementos como botones, imágenes, ventanas, etc. Con esta finalidad, se creó la librería PCE, la cual permite a PROLOG poder generar cuadros de dialogo y diseñar interfaces visuales, esto trabajando desde un esquema orientado a objetos, de esta manera, se pueden crear clases y trabajar con diferentes objetos.
Si creamos objetos, también podremos destruirlos.
Open y destroy
Estos comandos son los comandos de uso para trabajar con los objetos visuales básicos, ya que open(): abre la ventana de diálogo visualizándola en pantalla, y destroy() cierra la ventana de dialogo visualizada en pantalla. Para poder abrir o destruir los objetos generados, es necesario utilizar el comando send, tal como puede verse a continuación.
1 2 |
send(D, open). send(D, destroy). |
Los cuales abren el objeto D, y posteriormente envían la instrucción para destruir dicho objeto.
Append y message
Podemos generar combinaciones entre los objetos visuales y mensajes por medio de los comandos append y message.
Append: es utilizado para insertar un objeto dentro de otro objeto, por ejemplo un dialogo, visualizándolo en el mismo.
Message: indica el mensaje o acción que queremos que sea ejecutado cuando pulsemos sobre el botón con el ratón.
Cuadros de dialogo
Podemos generar cuadros de dialogo desde PROLOG por medio del siguiente comando:
1 |
dialog(label=[name], size=[size], display=[display]) |
del que podemos observar que el primer argumento es una etiqueta que llevara el cuadro, el tamaño del cuadro y si queremos desplegar otro objeto.
Ahora bien, para poder generar un dialogo, podemos utilizar el siguiente código, en donde generamos un nuevo objeto, que será un cuadro de dialogo, y será almacenado en la variable D. Cuando hemos generado el objeto, lo mandamos llamar por medio de send\2.
1 2 |
dialogo:- new(D,dialog('Titulo del Dialogo', size(440, 320))), send(D, open). |
Como ya hemos generado este objeto, es posible también que podamos destruirlo, esto se realiza dando la siguiente instrucción, después de abrir el objeto D, se llama al destructor para eliminar a D, tal como puede verse en la siguiente línea de código.
1 2 |
cierra:- new(D,dialog('Titulo del Dialogo', size(440, 320))), send(D, open),send(D,destroy). |
Botones
Es posible generar botones que se encontraran dentro de un cuadro de dialogo, para la generación de botones, tenemos la siguiente instrucción:
1 |
button(name=name, message=[code]*, label=[name]) |
Donde se incluye un mensaje que será transmitido por la interfaz. Una forma de ver la utilización de este comando, lo podemos visualizar en la siguiente sección de código:
1 2 |
boton:-new(D,dialog('Titulo del Dialogo', size(440, 320))), new(Boton, button('Salir', message(D, quit))), send(Boton, open). |
En el cual se genera un dialogo guardado en D y un botón, guardado en la variable Boton.
Etiquetas
La generación de las etiquetas esta dada por medio del comando:
1 |
label(name=[name], selection=[string|image], font=[font]) |
donde tenemos el nombre que llevara el objeto, la selección, que puede ser una cadena o una imagen que queremos que sea mostrada en él; y el tipo de fuente.
Podemos realizar una etiqueta por medio de
1 |
label:-new(L, label(nombre, 'Lo que quieres decir')), send(L, open). |
Donde generamos un objeto llamado etiqueta, guardado en la variable L.
Ejemplo 1. Inserta un objeto llamado Objeto dentro de un cuadro de dialogo, visualizándolo en el mismo.
Para poder realizar este ejercicio, es necesario concatenar un botón dentro de otro objeto, tal como se ve a continuación.
1 |
send(D, append(button(‘Boton 1’))) |
Dando como resultado, la siguiente sección de código:
1 2 |
inserta:-new(D, dialog('Titulo del Dialogo', size(440, 320)) ), send(D, append(button('Boton 1'))), send(D, open). |
Donde insertamos un botón con valor “Boton 1” dentro de un cuadro de dialogo D.
Ventanas
WINDOW: Esta clase sirve para crear ventanas donde dibujar o poner otros objetos gráficos, y esta formada por medio de:
1 |
window(label=[name], size=[size], display=[display]) |
Podemos generar una ventana utilizando la siguiente forma:
1 |
inicio:-new(W,window('nombre ventana',size(320,200))),send(W,open). |
Si queremos utiliza imágenes, debemos de tener en cuenta en que directorio se van a encontrar dichas imágenes. Si el directorio de donde se extraerá la imagen es diferente del directorio por defecto, se utiliza la sentencia:
1 |
pce_image_directory. |
Para indicarle que se encuentra en el directorio donde esta el archivo de consulta utilizamos
1 |
:- pce_image_directory(‘./directorio’) |
Para poder ver la aplicación de los elementos multimedia presentados en esta sección, es recomendable ir a la página http://virtual.cuautitlan.unam.mx/intar/?page_id=200 en donde se podrán encontrar diferentes proyectos realizados con PROLOG y PCE.