Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Tabla de contenido
CONFECCIÓN DE INTERFACES DE USUARIO...............................................................................................................2
1. INTERFACES DE USUARIO............................................................................................................................2
1.1. INTRODUCCIÓN A LAS INTERFACES DE USUARIO..........................................................................................2
1.2. ¿QUÉ SON LAS INTERFACES DE USUARIO?.................................................................................................4
1.3. EVOLUCIÓN DE LAS INTERFACES DE USUARIO.............................................................................................9
1.4. TIPO DE INTERFACES DE USUARIO..........................................................................................................14
1.5. ELEMENTOS DE LAS GUI. PROPIEDADES Y CARACTERÍSTICAS.......................................................................17
2. HERRAMIENTAS PROPIETARIAS Y LIBRES DE EDICIÓN DE INTERFACES..................................................................28
2.1. HERRAMIENTAS DE DISEÑO DE INTERFACES.............................................................................................29
2.2. ELEMENTOS DE LAS HERRAMIENTAS DE DESARROLLO DE INTERFACES............................................................30
3. COMPONENTES: CARACTERÍSTICAS Y CAMPOS DE APLICACIÓN BORRADO...........................................................33
3.1. VENTANA DE CUADRO DE COMPONENTES...............................................................................................35
3.2. OTROS CONTENEDORES (PANELES)........................................................................................................37
3.3. AÑADIR/ELIMINAR COMPONENTES EN LA INTERFAZ DE USUARIO.................................................................38
3.4. UBICACIÓN Y ALINEACIÓN DE COMPONENTES. MODIFICACIÓN DE PROPIEDADES.............................................40
4. LIBRERÍAS DE COMPONENTES DISPONIBLES PARA DISTINTOS SISTEMAS OPERATIVOS Y LENGUAJES DE PROGRAMACIÓN 42
4.1. CARACTERÍSTICAS ESPECÍFICAS DE LAS HERRAMIENTAS DE DISEÑO DE INTERFACES...........................................43
4.1.1. CONTROLES: CLASES, PROPIEDADES Y MÉTODOS......................................................................................43
4.1.2. DIÁLOGOS MODALES Y NO MODALES.....................................................................................................46
5. ENLACE DE COMPONENTES A ORÍGENES DE DATOS. DATAGRID........................................................................48
6. LOS EVENTOS: CONCEPTO, ASOCIACIÓN DE ACCIONES, EVENTOS ESCUCHADORES.................................................53
7. EDICIÓN DEL CÓDIGO GENERADO POR LAS HERRAMIENTAS DE DISEÑO...............................................................53
Confección de interfaces de usuario.
1. Interfaces de usuario
Actualmente, tiene alrededor multitud de ejemplos de aplicaciones informáticas, con las
interfaces de usuario correspondientes, que ayudan a la vida cotidiana de los seres
humanos. Naturalmente, ante un ordenador, se utilizarán muchas aplicaciones, pero ante
un cajero automático en el que se quiere sacar dinero o realizar cualquier otra operación,
habrá que interactuar con otro tipo de interfaz de usuario (que será interactiva, en este
caso).
Sin embargo, hay muchos más ejemplos: hoy en día ver el televisor, con el TDT
incorporada, representa tener que utilizar una serie de menús y opciones. Éste es otro
tipo de interacción entre un hardware electrónico y las personas, mediante otro tipo de
interfaz de usuario. También lo será un reproductor de MP3, que traerá una pequeña
interfaz muy simple, pero necesaria para su funcionamiento. Y no hace falta que hablemos
de las interfaces que llevan todos los aparatos dedicados al ocio, como las consolas de
videojuegos. Y podría hablarse también de los teléfonos móviles.
Las interfaces de usuario están en continua evolución y deben conocerse una serie de
herramientas que permitan su desarrollo.
En segundo lugar, tendremos las aplicaciones. Éstas se encuentran por encima del sistema
operativo (el que necesitarán, adaptándose a él) y por debajo de los usuarios. Las
aplicaciones tendrán unas funcionalidades concretas, y ayudan a los usuarios a conseguir
sus objetivos determinados.
¿Dónde se encuentran las interfaces? Las interfaces forman parte de las aplicaciones. Son
la parte de las aplicaciones con las que se relacionarán los usuarios.
CES
El International Consumer Electronic Show –
abreviado como CES – es la feria mundial anual
más importante de tecnologías de consumo, con
las novedades más importantes del mercado.
Dentro de las interfaces de usuario diseñadas para aplicaciones informáticas, nosotros nos
fijaremos en las interfaces de usuario gráficas o GUI ( graphical user interface).
Las GUI permitirán al usuario interactuar con el sistema informático de más formas que la
que históricamente ha sido la única alternativa hasta hace unos años: teclear
instrucciones complejas y difíciles de entender para el usuario no experto.
Una de las novedades más importantes de las interfaces gráficas de usuario, aparecida a
mediados de los ochenta, fue la aparición del ratón como periférico. Utilizarlo permite a
los usuarios poder precisar la ejecución de las instrucciones, para poder interactuar con
las interfaces sin necesidad de teclear una sola instrucción.
MAC: los sistemas informáticos de los Mac llevan un sistema operativo Mac OS X.
El nombre de la interfaz gráfica de usuario que incorpora su sistema operativo se
conoce como Aqua (desde el año 2000). Antes, con los sistemas operativos
Mac OS 8 y 9 la interfaz gráfica de usuario se había llamado Platinum. Se trata de
una interfaz que intenta ofrecer unos colores y unas texturas lo suficientemente
atractivas como para ayudar al éxito del sistema operativo. Aporta un Dock, una
barra de accesos directos a las aplicaciones y carpetas de documentos, que facilita
la navegación por el sistema. Incorpora también un menú siempre en la misma
ubicación, que irá cambiando en función de la aplicación que esté activa.
Linux: el sistema UNIX/Linux lleva una interfaz primaria o básica de tipo texto, y
era el único sistema para poder interactuar con él hasta no hace mucho
tiempo. Actualmente existen varias interfaces gráficas, como:
o X Window: incorpora un modelo cliente-servidor que permite el uso
directo por parte de las aplicaciones de los periféricos de entrada/salida.
Todas estas funciones principales más habituales de las interfaces de usuario se pueden
incluir dentro del objetivo principal de una interfaz de usuario, que consiste en
comunicarse de forma sencilla y agradable con el usuario por medio de un dispositivo de
entrada/salida.
CLI
Acrónimo de command line interface, es decir,
'interfaz de línea de instrucciones'. Permite a los
usuarios interactuar con el ordenador por
medio de líneas de texto simples que contienen
instrucciones.
Pero no todas las interfaces han sido, ni son, sencillas y agradables de utilizar. Las
interfaces de líneas de instrucciones (CLI, command line interface) , son un tipo de interfaz
más arcaico, pero con algunas funcionalidades mucho más prácticas para sus usuarios,
normalmente usuarios más expertos.
¿Quién preferirá utilizar una interfaz de tipo CLI antes que una interfaz gráfica de
usuario? Los usuarios con muchos años de experiencia, que tuvieron que aprender las
instrucciones básicas para poder trabajar con los sistemas operativos y están más
habituados a este tipo de interfaces, o, simplemente, quieren utilizarlas, ya que una
instrucción compleja será muy complicada representar mediante los elementos que
ofrecen las interfaces gráficas.
Otros dispositivos de hardware harán necesario el uso de estas interfaces. Por ejemplo, un
router o un conmutador algo complejo ofrecerá unas posibilidades de programación que
requerirán el trabajo mediante líneas de instrucciones.
Uno de los puntos críticos será el diseño de las interfaces de usuario. Será necesario que
cumpla todos los requisitos y que sea sencilla de utilizar. Si en la fase de diseño no se
consiguen estas premisas, difícilmente se obtendrá una interfaz adecuada para ser
utilizada de forma agradable y sencilla por sus usuarios, sin que éstos necesitan horas de
formación o un buen manual al lado mientras interactúan con la interfaz.
A lo largo de los años, las interfaces gráficas han estado ligadas de las manos con los
sistemas operativos. A medida que éstos iban evolucionando, las interfaces de las
aplicaciones que se ejecutaban sobre aquellos sistemas operativos habían evolucionado
en la misma medida, o más, si esto era posible.
Los sistemas operativos gráficos acercaron la informática a muchos más usuarios de los
que hasta ese momento habían utilizado los ordenadores. Ya no era necesario ser
conocedor de las órdenes a introducir por la línea de instrucciones o tener conocimientos
de BASIC. Por ejemplo, cuando apareció Windows 3.1, el primer sistema operativo de gran
consumo basado en ventanas, muchas aplicaciones se adaptaron a este nuevo tipo de
interfaces y también se basaron en ventanas, lo que hizo mucho más fácil y accesible el
uso de la informática en el gran público.
A lo largo del tiempo se puede dividir la evolución de las interfaces de usuario en las
siguientes fases:
A partir de los años sesenta, con los lenguajes de órdenes, se llegó a la interfaz de línea de
instrucciones. Esta interfaz permitía al usuario interactuar con el ordenador con una línea
de texto, que serviría como texto que llevaría incluido un comando.
Hay que tener en cuenta que estamos hablando de una época en la que un único
ordenador central daba servicio a muchos usuarios, que van enviando instrucciones a ese
ordenador central, que distribuye su tiempo entre las solicitudes.
En la década de los ochenta los ordenadores personales se hicieron más habituales para el
gran público, aunque las interfaces gráficas de usuario tardarían un poco en llegar. En esta
fase se empiezan a utilizar las interfaces llamadas WIMP ( windows, icons, menus and
pointer) , es decir, interfaces que disponen del movimiento de un puntero por la pantalla y
que tendrán ventanas, iconos y menús. Se puede considerar que hasta el momento se
trabajaba en dos dimensiones con las interfaces con líneas de instrucciones y, a partir de
la aparición de las interfaces WIMP, se puede considerar que se utiliza una tercera
dimensión que permite trabajar con más de una ventana (y aplicación) a la vez,
superponiendo una encima de la otra.
WIMP
Tipo de interfaz, acrónimo de windows, iconos, menús and
pointers, es decir, 'ventanas, iconos, menús y punteros'.
Las GUI permiten a los usuarios trabajar directamente en aquellas funcionalidades que les
interesan, y deben desplazarse hasta otras interfaces para localizar y poder utilizar otras
funcionalidades. Ofrecen una interacción con los usuarios que se basa en la manipulación
directa, ofrece los elementos importantes para el usuario en cada interfaz y permite su
manipulación.
Las primeras interfaces gráficas hemos visto que empezaron a desarrollarse a mediados
de los años setenta (Xerox), pero hasta mediados de los ochenta no las desarrollaron
masivamente otras empresas, lo que provocó el uso más generalizado de los
ordenadores. En el siguiente cuadro podemos ver la evolución de las interfaces y algunos
sistemas operativos que se fueron desarrollando:
A partir del año 1995 existe un cambio muy importante en el uso de las interfaces de
usuario. La aparición de sistemas operativos que interactúan con los usuarios de forma
única y completa con GUI convirtió las interfaces en un elemento más de consumo y
generalizó más aún el uso de los ordenadores personales dentro de las casas y sistemas
informáticos en las organizaciones.
Este gran cambio supuso un cambio en la forma de desarrollar aplicaciones para los
nuevos sistemas operativos gráficos, y permitió también investigar y evolucionar mucho
más en este campo.
Las interfaces gráficas de usuario siguen utilizando elementos de las interfaces del estilo
WIMP, pero cada vez más evolucionados, con nuevos elementos y funcionalidades. Una
de las novedades más importantes es la aparición de elementos multimedia que se
pueden añadir a las interfaces, como sonidos (ya sean alertas de que avisan al usuario de
una mala interacción o un sonido de fondo que se puede escuchar durante el
funcionamiento de la interfaz).
En la figura 1.9 puede verse un ejemplo de sistema operativo con un entorno WIMP. El
sistema operativo del ejemplo se llama Haiku, un proyecto de código abierto desarrollado
en C++ que desea recrear el sistema operativo BeOS.
Las interfaces gráficas que nos encontramos actualmente (y la evolución hacia las que nos
encontraremos en el futuro) van encaminadas a utilizar aún más dimensiones y otras
evoluciones.
Por ejemplo, existe un tipo de interfaces basadas en WIMP. WIMP muestra un tipo de
formato de interacción entre las personas o usuarios y los ordenadores (y sus interfaces).
Usuarios de interfaces
Habrá que tener en cuenta el nivel de conocimientos de los
usuarios de las aplicaciones y las interfaces a la hora de
diseñarlas. Hay usuarios novatos, usuarios intermedios y
usuarios expertos en el uso de aplicaciones e interfaces.
WIMP es un estilo de interacción que utiliza normalmente un ratón para controlar la
ubicación de un cursor que se irá desplazando por las interfaces. Otro elemento
importante del WIMP es la utilización de ventanas para presentar la información de forma
organizada. También se utilizan iconos y menús para ofrecer las funcionalidades
adecuadas a los usuarios.
A partir de este conjunto de elementos, las opciones de los menús y las que representan
los iconos serán activadas a partir de los punteros que se moverán con el dispositivo físico
(ratón), y se modificarán las informaciones para mostrar en las ventanas.
Las alfanuméricas, con las que habrá que trabajar con instrucciones, también
conocidas como las interfaces de línea de instrucciones (CLI). Este tipo de interfaz
será la única posibilidad de trabajar con estos sistemas, utilizando toda la pantalla
para este objetivo.
Las interfaces gráficas de usuario (GUI) . Este tipo de interfaces permiten una
interacción más rápida, sencilla e intuitiva gracias al hecho de representar de
forma gráfica los elementos de las interfaces.
Si nos fijamos en cómo se ha desarrollado la interfaz, los elementos con los que se ha
construido, podemos encontrar tres tipos:
De hardware: se trata de interfaces que permiten la interacción entre el usuario y
el sistema informático mediante elementos de hardware, dispositivos como
pulsadores o lectores de barras u otros reguladores o instrumentos.
De software: éstas son las interfaces desarrolladas para ordenadores que basan su
creación en desarrollo de software, mediante el cual se llevará a cabo toda la
interacción con los usuarios.
Otras formas de clasificar las interfaces son según la arquitectura de las aplicaciones y su
forma de trabajar:
API
Del inglés application programming interface, 'aplicación para
programar interfaces'. Facilitará la interacción entre distinto
software.
Una última forma de clasificar las interfaces es a partir del software donde se
desarrollarán:
Metáfora
Como sabéis, en literatura una metáfora consiste en sugerir
una idea haciendo referencia a otra cosa que el lector ya
conoce.
Accesible e intuitiva: una interfaz debe ser intuitiva en su uso, mostrar con
claridad las funcionalidades que ofrece y facilitar llegar de manera sencilla y clara.
Uso de metáforas: para identificar las funcionalidades que representan o los
objetivos que simularán, las interfaces deben utilizar metáforas que vinculen
sencillamente icono o imagen con funcionalidad u objetivo.
Aprendizaje y uso fácil: las interfaces deben ser fáciles de usar y también de
aprender por parte de los usuarios más novatos.
Consistencia: las interfaces deben seguir un mismo diseño y estructura entre ellas
y también con otras interfaces de aplicaciones análogas. También tendrán que ser
consistente cuando se ejecuten en diferentes entornos.
Ofrecer el control de las interfaces: una interfaz debe saber entregar su control al
usuario que la utilizará.
Anticipación: se tendrán que prever los posibles errores que pueda cometer un
usuario o las necesidades que pueda demostrar y ofrecer soluciones antes de que
aparezcan o controlándolos y ofreciendo soluciones.
Autonomía: un usuario no debe necesitar más información o ayuda que la que una
interfaz le ofrece o, la que puede encontrar a partir de las indicaciones que le
indicará esta interfaz.
Reducir carga de memoria: para poder utilizar una interfaz más de una vez no será
necesario obligar a los usuarios a recordar la ubicación de las funcionalidades, sino
que éstas tendrán que ser sencillas de encontrar. Esto hará que no sea
indispensable memorizar muchas informaciones para aprender a utilizar una
interfaz determinada.
Valores iniciales: también conocidos como valores por defecto o estándar. Son los
valores que en las interfaces que llevan un formulario incorporado aparecerán
inicialmente seleccionados. Además, deben poder ser descartados de forma
sencilla.
Ley de Fitts: una interfaz debe conseguir optimizar la ley de Fitts. Esta ley, en
ergonomía, moldeará el movimiento humano, haciendo una estimación del tiempo
que puede necesitar un ser humano para mover un puntero desde una zona de la
pantalla a otra teniendo en cuenta variables como los objetivos, la distancia hasta
alcanzarlos y el tamaño que van a tener.
Las interfaces gráficas de usuario (GUI a partir de ahora) disponen de una serie de
elementos propios, comunes a muchas de las GUI desarrolladas, que dispondrán de unas
características y propiedades. Con este elemento se facilitará el desarrollo de las GUI de
las aplicaciones informáticas, ofreciendo la posibilidad de cumplir la mayoría de las
características definidas.
Para que el usuario pueda utilizar estos elementos, deberá utilizar alguno de los
dispositivos de entrada/salida que se han ido desarrollando en los últimos años. El teclado
del ordenador ha sido el dispositivo indispensable, como es hoy en día el ratón. Pero hay
otros como el touchpad (ratón táctil), la tableta gráfica, el trackball ( bola), los joysticks ,
las pantallas táctiles o los micrófonos. Como dispositivos de salida, aparte de la pantalla,
serán importantes los altavoces o los LED informativos.
Algunos de los elementos de las GUI que se pueden encontrar de forma habitual en
muchas interfaces son:
Ventanas
Cuadros de diálogo
Asistentes
Menús
Pestañas
Barras de herramientas
Iconos
Entorno de trabajo
Entornos de escritorio
Controles
Tipografía
Ventanas
Dentro de los diferentes elementos de las GUI, encontramos uno de los más importantes,
que son las ventanas (windows) . Las ventanas son, normalmente, bidimensionales y de
forma rectangular, y se ubicarán en el escritorio del sistema operativo. Cuando tenemos
abierta más de una ventana ubicada en un mismo escritorio, la que estará activa será la
que podremos ver, la que estará más cerca de nosotros, y el resto quedarán por debajo,
escondidas. Hay que decir que en los sistemas operativos más modernos empiezan a
utilizarse técnicas de transparencia para poder identificar algunos elementos de las
ventanas no activas, ubicadas por debajo de la ventana activa.
Las ventanas nos ofrecen la posibilidad de trabajar a la vez con distintos entornos, que
podrán ser de la misma aplicación o de diferentes aplicaciones.
Por ejemplo, trabajar con ventanas nos ofrece la posibilidad de tener dos documentos
ofimáticos abiertos (una hoja de cálculo y un documento de texto) e ir alternando la
información escrita en ambos documentos o ir copiando información de un documento a
uno otro. En la figura 1.10 se puede encontrar un ejemplo de trabajo con ventanas en un
entorno de trabajo con el sistema operativo Windows 7.
Las ventanas nos permitirán ofrecer información al usuario de forma organizada. Nos
permitirá navegar por las funcionalidades de una aplicación visualizando la información de
forma jerarquizada. Esto permite gestionar y manipular la información de forma bastante
sencilla. Cada ventana puede ser manipulada como al usuario le interese, maximizándola
o minimizándola, moviéndolas o cerrándolas, navegando o haciéndolas mayores… Las
ventanas contendrán interfaces gráficas de usuario que incorporarán otras elementos
propios de las GUI, como menús, pestañas, barras de herramientas, objetos gráficos o
multimedia, que permitirán tanto la salida como la entrada de datos para que el usuario
pueda llevar a cabo varios procesos.
A lo largo de los años las ventanas han ido evolucionando, llegando hoy a lo que se podría
llamar un estándar de diseño de ventanas, con unos elementos básicos, de los que harán
uso todas las ventanas, como son: el marco, la cabecera de la ventana, el espacio del
contenido, la barra de desplazamiento y el pie de la ventana.
El marco ayuda a distinguir lo que pertenece a la ventana y lo que no. Además, sirve para
redimensionar los tamaños de la ventana. Como prácticamente todos los elementos,
podrá configurarse en la mayoría de los casos. La cabecera de la ventana es el lugar donde
se encontrarán situados los iconos que identifican y permiten llegar a las principales
funcionalidades de la aplicación que se ejecuta en esa ventana. El espacio de contenido
variará en tamaño en función de las dimensiones de la ventana. Será el sitio donde se
mostrará la información (imagen, contenidos multimedia, de texto…). La barra de
desplazamiento o scrollaparecerá en caso de que el espacio de contenido sea menor que
la información a mostrar. De esta forma el usuario se puede desplazar por los contenidos
no visibles inicialmente a la ventana. Finalmente, el pie de la ventana se utiliza para
ofrecer informaciones diversas relacionadas con la ventana o con la aplicación y los
contenidos que se mostrarán.
Cuadros de diálogo
Los cuadros de diálogo son un tipo de ventanas, también consideradas como ventanas
secundarias. Los cuadros de diálogo aparecen por encima del resto de ventanas pidiendo
una interacción concreta al usuario, que deberá contestarle. Esta interacción podrá ser
sólo informativa (un mensaje de ancianos o advertencia que habrá que confirmar que se
ha leído para poder continuar) o un requisito concreto de algún dato o de alguna acción
que habrá que contestar de manera concreta para poder continuar utilizando la
aplicación.
Asistentes
Los asistentes son ventanas que van apareciendo una detrás de otra hasta llegar a un
determinado objetivo. Como su nombre indica, asisten al usuario hasta completar una
funcionalidad, preguntando paso a paso todas las informaciones necesarias hasta
completarla correctamente. De esta forma el usuario no podrá olvidarse de introducir una
información o escogerá mal una opción.
Menús
Los menús son un elemento muy importante para las interfaces de usuario, puesto que
serán los encargados de mostrar todas las posibilidades de interactuar con la aplicación
informática.
Como puede verse en la imagen, muchos menús indican las combinaciones de teclas que
permiten llegar a la misma funcionalidad de forma más rápida. Un usuario habitual de una
aplicación memorizará las funcionalidades más indispensables para él. En ocasiones, en
vez de la combinación de teclas puede haber otras informaciones gráficas que
complementen la información en formato de texto que identifica una funcionalidad, o
bien indicadores de cómo se encuentra una opción (si se puede ejecutar o no o si está
activada o no) o la agrupación a la que pertenece.
Finalmente, hay que tener presente la evolución de los menús. En las últimas aplicaciones,
como el paquete de ofimática Office 2007 o Office 2010, los menús han evolucionado
hacia una muestra de funcionalidades por medio de iconos, minimizando la presencia del
texto. Esta evolución puede llevar a la confusión a los usuarios acostumbrados a una
forma determinada de trabajar. Se puede ver un ejemplo de menú de Office 2007 en
la figura 1.14.
Pestañas
Las pestañas de propiedades son un elemento que permite mostrar un conjunto de datos
o funcionalidades relacionadas entre sí de forma agrupada. En una misma ventana se
podrán mostrar los contenidos de tantas ventanas como se desee, separándolas por
pestañas, que tendrán que tener un título y contener informaciones relacionadas. Se
puede ver un ejemplo en la figura 1.15.
Barras de herramientas
Los iconos son imágenes que representan funcionalidades o acciones que se podrán
realizar haciendo un clic encima. Entre otros sitios, en las interfaces gráficas de usuario,
son elementos que se utilizan en las barras de herramientas.
Se trata de un elemento muy importante en las interfaces de usuario, puesto que hará
más rápido, atractivo y sencillo el uso de las aplicaciones más que si las informaciones que
se ofrecen al usuario son en formato texto. Además, en el caso de aplicaciones
internacionales, los iconos pueden ser los mismos en distintas culturas y, en cambio, las
traducciones pueden ser mal entendidas algunas veces.
Entorno de trabajo
El entorno de trabajo debe considerarse como un elemento más de una interfaz gráfica de
usuario. Es un elemento más de las interfaces, como los menús, las barras de
herramientas o muchos otros.
Se trata de la ubicación principal de las informaciones con las que se interactúa con el
usuario, donde se mostrará el texto, imágenes o datos que el usuario habrá solicitado
mediante los menús.
Tipografías
Se conocen como tipografía digital los tipos de letra desarrollados exclusivamente para
pantallas, para su uso en interfaces gráficas de aplicaciones informáticas. De esta forma,
Microsoft tiene un sistema propio de tipo desarrollado, tanto para su sistema operativo
como para las aplicaciones que funcionarán encima. Apple también ha dedicado un
importante esfuerzo a este tema, y desarrolló las primeras fuentes exclusivas para
pantallas de sistemas informáticos.
Otras características a tener en cuenta de las tipografías digitales serán la intensidad y los
colores utilizados, así como los diferentes tamaños de letra. Una correcta elección de
todas estas variables puede influir mucho en la apreciación por parte del usuario de la
interfaz desarrollada.
Controles
Existen muchos tipos de componentes que se pueden utilizar en las interfaces gráficas de
usuario. Un tipo de componentes son los controles. Éstos proporcionan funciones a la
interfaz de usuario que permitirán muchas más posibilidades en las interacciones entre
interfaz y usuario.
Un tipo de control son los botones, objetos de control que dan la opción de introducir un
dato de confirmación en el sistema. Existen diferentes tipos de botones:
Además de los botones existen muchos otros tipos de componentes, como pueden ser los
elementos de entrada de texto o los elementos de información de salida, como la barra de
progreso o la barra de estado, o los elementos compuestos, como las barras de tareas o
el combo box.
Generaciones de lenguajes
Lenguajes de tercera generación: C, C++, C#, Java, Delphi, …
Lenguajes de cuarta generación: Visual Basic .NET, PL-SQL, PHP, ASP,
…
Este tipo de software deberá tener en cuenta muchas disciplinas, puesto que la creación
de una interfaz de usuario engloba conceptos de diseño gráfico, de lingüística, de
ergonomía, de sociología, de programación y tecnología informática y de psicología
cognitiva, entre otros.
Para conseguir desarrollar de forma sencilla las interfaces, las herramientas incorporan
varios elementos preprogramados que facilitan mucho la creación de interfaces gráficas
complejas de una forma sencilla. Así será muy sencillo añadir a una interfaz un menú o un
icono, tan sencillo como desplazar este elemento al panel principal donde se desarrolla la
interfaz, y modificar posteriormente sus propiedades. Estos elementos pueden ser para
fomentar la iteración con el usuario (ayudas, actualización de datos, acciones sobre
cursores…) o elementos para configurar las interfaces (iconos, ventanas, controladores de
dispositivos, menús…). Además, se pueden gestionar los posibles errores por parte del
usuario al utilizar la interfaz, procesar excepciones.
Otras características que hay que tener en cuenta de las herramientas para la creación y
edición de interfaces gráficas es que éstas son tipos de herramientas del tipo WYSIWYG,
es decir, se podrán observar de forma directa los cambios en el diseño y desarrollo de las
interfaces. Lo que hacen es lo que verá el usuario final de las aplicaciones, y se pueden ver
los resultados de forma inmediata.
IDE NetBeans: Desarrollado inicialmente por Sun, que actualmente patrocina los
proyectos de desarrollo. Herramienta de código abierto y gratuita. Soporta, entre
otros, los lenguajes Java, JSP, C++ y PHP. Es multiplataforma.
Hasta no hace muchos años desarrollar una interfaz gráfica de usuario era una tarea
bastante compleja. Actualmente existen muchas herramientas que automatizan este
proceso, y hacen, incluso, propuestas automáticas de interfaces a partir de las tablas de
una base de datos. Con pequeñas modificaciones, el desarrollador dispondrá de una
interfaz que cumpla los objetivos marcados.
Pero todavía existe la posibilidad de programar como se hacía hace años, utilizando la
programación por código, de forma parcial o completa. Es muy difícil encontrar, hoy en
día, gente que aún desarrolle interfaces gráficas de usuario a partir de un lenguaje de
programación. Sin embargo, si es más habitual utilizar herramientas de diseño de
interfaces y, a partir de ubicar manualmente los elementos en las ventanas, manipular
posteriormente el código que configurará y gestionará las acciones de estos elementos. La
programación visual consiste en diseñar las interfaces colocando los elementos en los
formularios y configurando sus propiedades y acciones sin tener que implementar una
línea de código.
Muchas de estas herramientas de diseño y desarrollo de interfaces de usuario tienen
algunos elementos comunes (o muy similares), como puede ser disponer de un área de
diseño, una paleta de componentes, editores de propiedades o diferentes contenedores.
Para explicar algunos de estos elementos que son similares en sus características y uso se
utilizará como herramienta para los ejemplos la versión 2010 del software Visual Studio,
de Microsoft.
En la figura 1.18 se puede ver el entorno de trabajo de Visual Studio 2010 al iniciarlo con
un proyecto en Visual Basic para una aplicación desarrollada con Windows Forms. Este
entorno de trabajo es muy similar al que puede encontrarse en cualquier otra
herramienta de desarrollo de interfaces, como Eclipse o Mono.
Área de diseño: Ocupa la parte central. Contendrá los paneles en los que se irán
ubicando los elementos que se quieren añadir a la interfaz. Dispondrá de pestañas
para poder trabajar con más de un panel o interfaz al mismo tiempo. En
la figura 1.18 puede verse representado por el número 3.
Cuadro de herramientas: Contiene todos los elementos que podremos añadir a los
paneles que se estén desarrollando en el área de diseño. Seleccionando y
arrastrando cada elemento en el área de diseño se podrá diseñar la interfaz que
queremos. En la figura 1.18 puede verse representado por el número 4.
Hoja de propiedades: Es una ventana en la parte derecha del área de diseño que
muestra las propiedades o características del elemento seleccionado. Estos valores
de las propiedades se podrán modificar según interese para conseguir el
cumplimiento de los objetivos del diseño de las interfaces. En la figura 1.18 puede
verse representado por el número 5.
Otro ejemplo de IDE es Eclipse, desarrollado por IBM para desarrolladores de Java. Como
puede verse en la figura 1.19, su interfaz es muy parecida a la de Visual Studio,
prácticamente con los mismos componentes.
Tiempo de diseño/ejecución
Tiempo de diseño: Cuando se están desarrollando las interfaces de
una aplicación informática.
Tiempo de ejecución: Cuando el usuario está ejecutando la aplicación
y está interactuando.
¿Qué es un panel? Es un control que servirá para contener otros controles. Es una
herramienta adecuada para ocultar o mostrar un determinado tipo de controles. Este tipo
de control podrá tener barras de desplazamiento del control, además de poder
personalizar sus características y propiedades de presentación. Un tipo de contenedor
será una barra de herramientas.
¿Qué es un formulario? Es un tipo de componente que será como una ventana que el
desarrollador, en tiempo de diseño, podrá utilizar para ubicar otros componentes o
controles. Un formulario puede existir por sí solo o puede formar parte de un conjunto de
formularios. Como ejemplos de formulario se tienen las ventanas con o sin marco, los
cuadros de diálogo…
Una vez aclarados ciertos conceptos veremos algunos ejemplos de los componentes que
forman una interfaz gráfica de usuario.
Existen muchos elementos y de muchos tipos, que se podrán utilizar para desarrollar
interfaces de usuario. Además, se podrán agrupar, crear otros nuevos e intercambiarlos
entre diferentes herramientas de diseño de interfaces. En la tabla .1 se muestran algunos
de los principales elementos (componentes y controles) que podremos encontrar iguales
o muy similares en diversas herramientas de diseño de interfaces o entornos integrados
de desarrollo de software.
Existen varios grupos de controles disponibles; el número depende del tipo de diseñador
activo en el editor. Cuando se está diseñando un formulario tipo Windows Forms,
aparecen las herramientas necesarias para trabajar con formularios Windows, que serán
diferentes de los componentes para trabajar con formularios Web y que, a su vez, están
agrupados por categorías de controles.
En la figura 1.20 (a) se pueden observar algunos de los tipos de componentes más
habituales en formularios de tipo Windows Forms. Estos componentes se agrupan en
contenedores, menús y barras de herramientas, impresión, cuadros de diálogo y datos,
entre otros.
En la figura 1.20 (b) se puede ver el detalle de algunos de los controles más habituales que
se utilizan: Los botones, las checkbox, las etiquetas, las listbox, las imágenes…
Esta ventana del cuadro de herramientas será posible personalizarla según las
necesidades del desarrollador. Es posible crear nuevos grupos o añadir componentes
adicionales a un grupo existente. Se pueden añadir otros componentes .NET o controles
ActiveX de los utilizados en aplicaciones que no son .NET.
Figura 1.20 Cuadro de Componentes (a) y Ventana de cuadro de controles (b)
Clase
En un contexto de POO (programación orientada a objetos), una clase
es un conjunto de propiedades y métodos relacionados con un
significado propio.
Herencia
En un contexto de POO es un tipo de relación entre clases, en el que
una deriva de una segunda, lo que permite la reutilización y extensión
del software. Permite la creación de una jerarquía de clases.
En la figura 1.22 puede verse un ejemplo en el que tenemos un texto con dos opciones
creadas como RadioButtons. Todos estos controles se han agrupado y se han convertido
en uno solo.
En la figura 1.23 se puede ver cómo se añade un control tipo Button al formulario Form1.
De forma alternativa, es posible incluir un control haciendo doble clic sobre el control o
componente que queremos en la ventana del cuadro de herramientas. En este caso, si
antes de realizar el doble clic sobre el control se encuentra seleccionado un formulario u
objeto virtual en el área de diseño, el control se posicionará en la parte superior izquierda
del mismo; si está seleccionado otro control, el nuevo control le posicionará sobre éste.
Para desplazar la mayoría de los controles simplemente es necesario seleccionarlos y
arrastrarlos con el ratón cuando el cursor toma la forma de una cruceta. Sin embargo,
para desplazar algunos controles es necesario utilizar el tirador que tienen en forma de
cruz. En la figura 1.24 puede verse un ejemplo de la acción de desplazamiento de un
control.
Figura 1.24 Desplazar un componente
Existen controles que no son visibles. En versiones anteriores de Visual Studio, estos
controles también aparecían sobre el formulario. En Visual Studio .NET, estos controles
(como los cuadros de diálogo, el control ToolTip, o el control Timer) se dibujan sobre el
formulario, pero aparecen en la bandeja de componentes situada debajo del formulario.
En la figura 1.25 se puede ver un ejemplo de controles invisibles de tipo ToolTip y la forma
de trabajar en ellos.
La mayor parte de estas opciones de alineación sólo se pueden utilizar cuando existen
varios controles seleccionados. En estos casos, la operación se realizará sobre el último
control seleccionado. El primer control seleccionado será el que actúe como control
primario y los demás controles se alinearán a partir del primero.
Icono Descripción
Alinea de los controles por debajo.
Centra los controles verticalmente.
Alinea los controles por arriba.
Estos componentes pueden ser de uso genérico o de muy concreta utilización por parte de
determinados desarrolladores que buscan una funcionalidad concreta. Pueden estar
disponibles para un determinado lenguaje de programación o para una aplicación
determinada o un entorno integrado de desarrollo de interfaces. Y podrán estar
vinculados a determinadas funcionalidades (acceso a determinadas bases de datos,
componentes gráficos para identificar componentes concretos de un determinado
ámbito…).
Widget
La palabra widget corresponde a una abreviatura de las
palabras window y gadget, es decir, 'ventana' y 'dispositivos'. Es una
aplicación accesible desde una pequeña ventana. Son muy populares
en entornos Mac como accesos a aplicaciones de uso más frecuente.
Los widgets también serán específicos del entorno de programación, ya sea que se
desarrolle para un entorno Web o para un entorno WinForms.
Otros temas a tratar en este apartado están relacionados con los diálogos modales y no
modales y la edición de código generado por las herramientas de diseño y desarrollo de
interfaces gráficas de usuario.
Objeto
En un contexto de programación orientada a objetos, un objeto es
una instancia en una clase.
Los controles son objetos que permiten un desarrollo de las interfaces más sencillos
gracias a su posibilidad de modularidad y reutilización. Los controles tienen propiedades y
métodos, y se podrán asociar a eventos.
Hoy en día, se utilice la aplicación que se utilice en un entorno visual con interfaces
gráficas de usuario, encontraremos un uso generalizado de los controles. Si se quiere abrir
un documento o una fotografía se utiliza un control que muestra un cuadro de diálogo que
permite navegar por nuestro sistema de carpetas hasta encontrar el archivo que
buscamos. O si se finaliza la ejecución de una aplicación muchas veces es necesario
interactuar con una ventana que pregunta si se desea guardar el trabajo realizado.
Todos estos controles ya están creados y no será necesario programarlos de nuevo, basta
con utilizar la aplicación informática adecuada para diseñar y desarrollar la interfaz o
buscar el control en una de las muchas bibliotecas a nuestro alcance. Una vez escogido el
control que interesa al programador, éste sólo tendrá que modificar características como
el tamaño o el color y añadirlo al formulario apropiado, asociando el código necesario
para que el control se comporte como interese cuando se ejecute la aplicación.
Propiedades
Métodos (procedimientos y funciones)
Eventos
Las propiedades son las características que identifican a cada control. Éstos son lo que son
a partir de las partes que constituyen el objeto. Por ejemplo, una persona podría decirse
que presenta propiedades como podrían ser sus ojos, las orejas, los labios, la altura, el
peso… Estas propiedades pueden tener unos valores (por ejemplo, Ojos = Verdes, Orejas =
Grandes, Labios = Hasta, etc.) que harán que esa persona sea identificable respecto de
otra por aquellas características. Del mismo modo ocurre con los controles.
Name: Esta propiedad la tienen todos los controles: es el nombre que viene por
defecto, en este caso Text1, y es el nombre con el que se conocerá el control
cuando lo utilizamos en el código. En un mismo formulario no puede haber dos
controles con el mismo nombre. Conviene poner un nombre que represente la
función que tiene el control en la aplicación para que el código quede más
claro. Ejemplo, si en TextBox queremos introducir la dirección de una persona
podemos asignar a esta propiedad el valor TextBox_Direction.
Alignment: Alineación que tendrá el texto dentro del control: izquierda, centro o
derecha. Para que funcione la propiedad multilíneas debe estar con el valor true.
Pero las propiedades también pueden ser modificadas en tiempo de ejecución, colocando
su nombre y el nombre de la propiedad, como, por ejemplo:
Text1.text = "HOLA"
Los controles siguen el principio de la encapsulación; esto significa que se puede tener un
control 50 veces en un formulario, y si le cambiamos una propiedad a un control sólo se
cambia en éste y no en los 49 controles restantes, es decir, cada control mantiene
encapsuladas sus propiedades.
Los métodos son los procedimientos o funciones asociados a un control, los cuales
permiten realizar ciertas operaciones útiles sobre este control y obtener una respuesta.
Método:
Sub Nombre_del_Metodo (Parámetros)
Líneas de código
End sub
Funciones:
Function Nombre_de_la_Función (Parámetros) se Valor_para_retornar
Líneas de código
Nombre_de_la_Función = valor
End function
Por ejemplo, si sobre un control tipo Button se hace un clic con el ratón se ejecutará una
determinada acción. Se puede decir que el evento “clic sobre el control Button” activa
cierta funcionalidad. Otros ejemplos de eventos pueden ser cerrar un formulario,
seleccionar una opción de una lista o modificar el contenido de un control que contiene
datos.
Un cuadro de mensaje es un cuadro de diálogo modal que puede utilizarse para mostrar
información textual y permitir que los usuarios tomen decisiones con botones. La figura
1.28 muestra un cuadro de mensaje que muestra información textual, expone un mensaje
y proporciona al usuario dos botones para responder al mensaje.
MessageBox.Show (
"Está a punto de cerrar el formulario sin haber guardado los cambios.", _
"Alerta", _
MessageBoxButtons.OKCancel, _
MessageBoxIcon.Warning )
Otro tipo de cuadros de diálogos son los cuadros de diálogos comunes, que pueden ser
tan modales como no modales. El entorno Windows implementa varios cuadros de
diálogo reutilizables que son comunes para todas las aplicaciones, incluyendo cuadros de
diálogo para abrir archivos, guardar archivos e imprimir.
Dado que estos cuadros de diálogo están disponibles para todas las aplicaciones y que
ayudan a proporcionar una experiencia de usuario coherente, se conocen como cuadros
de diálogo comunes. Un ejemplo de cuadro de diálogo sería el creado cuando se intenta
imprimir un documento. Se muestra en la figura 1.29.
Es posible enlazar datos (Databind) con los controles de formularios, no sólo desde
orígenes de datos tradicionales (como DataSets ADO .NET), sino también a casi cualquier
estructura que contenga datos, como estructuras, colecciones, propiedades y otros
controles.
Existen varios tipos de fecha binding o enlaces a datos, como los simple data binding o
los complejo data binding.
Consiste en una asociación entre un control, que puede mostrar un único dato, y el objeto
que actúa como contenedor de datos, como el enlace entre un control TextBox o una
etiqueta y un objeto DataColumn de una DataTable de un DataSet.
Me.SqlDataAdapter1.Fill(Me.DataSet1, "NomTabla")
Dim bind As Binding
bind = New Binding("Texto", Me.DataSet1.Tables("NomTabla"),
"NomColumna")
Me.TextBox1.DataBindings.Add(bind)
Tal y como se observa, en el ejemplo se hace uso de la clase Binding , clase que permite
crear un enlace para un control indicando algunos parámetros, en los que el primer
parámetro es la propiedad de destino, el segundo parámetro es el objeto origen que
contiene todos los datos y el tercer parámetro es el campo origen en el objeto
origen. Cuando existe una modificación en la propiedad de destino, el cambio también se
realiza para el objeto origen. Si el objeto es un DataSet, los datos de la base de datos no
son modificados. DataSet debe ser sincronizado con la base de datos.
Este tipo de enlace es posible entre un control que puede actuar como interfaz o visor de
datos, ya que dispone de la capacidad de mostrar varios o todos los datos, normalmente
más de un registro, del objeto contenedor de datos. Esto se utiliza normalmente en
controles DataGrid (parrilla), ListBox o ErrorProvider. Un ejemplo clásico es el vínculo
entre una tabla de datos y un objeto DataTable de un DataSet. Se puede ver este ejemplo
representado en la figura 1.30.
Importes System
Importes System.Data
Importes System.Data.SqlClient
Importes System.Windows.Forms
<STAThreadAttribute()> _
Public Shared Sub Main()
Application.Run(New Form1())
End Sub
Me.dataGridView1.Dock = DockStyle.Fill
Me.Controls.AddRange(New Control() {Me.dataGridView1,
Me.ParentForm})
Me.Text = "Ejemplo de DataBinding: DataGrid"
End Sub
End Sub
Try
' Establecemos la cadena de conexión a la base de datos
Dim connectionString As String = _
"Integrated Security=SSPI;Persist Security Info=False;" + _
"Initial Catalog=Northwind;Data Source=localhost"
Catch ex As SqlException
MessageBox.Show(ej.Message)
End Try
End Sub
End Class
Si quisiéramos actualizar la información de la base de datos:
End Sub
End Sub
Cuando llega un evento, a veces nos interesa tratarlo (por ejemplo, la pulsación de un
número en una aplicación que presenta la funcionalidad de una calculadora) y en otras
ocasiones no queremos tratar el evento con ninguna acción (por ejemplo cuando l usuario
presiona con el ratón sobre un texto al que no le hemos asignado ninguna información
complementaria).
Para aclarar su significado, se llamarán algunos de los eventos más comunes que se
pueden producir en la ejecución de una aplicación por medio de sus interfaces gráficas de
usuario:
De esta forma, si queremos que un texto se ponga de color rojo al situarnos encima, y de
color gris al salir (con el ratón), debemos crear las instrucciones de los eventos
mouseEntered y mouseExited ; el primer evento se encargará de poner el texto de color
rojo y el segundo de ponerlo de color gris.
Por esta razón será necesario tener acceso al código generado por las herramientas de
diseño, para poder modificarlo y adecuarlo a nuestras necesidades.
Hay aplicaciones que integran un editor de código, lo que permite acceder sin tener que
salir del entorno de desarrollo, además de poder ver los resultados de las modificaciones
hechas de forma inmediata.
Otras aplicaciones generan el código y los archivos necesarios para poder disponer de las
interfaces generadas, pero no permiten esta edición en su entorno de desarrollo, lo que
hará necesario el uso de otras aplicaciones para poder editarlo, aplicaciones que podrán
ser especializadas en estas tareas o podrán ser muy sencillas, como cualquier editor de
texto.
Es necesario que el código generado sea un código modular y sencillo de entender. Si un
programador debe dedicar más tiempo a entender y hacer suyo el código, puede que no
le haya sido de mucha ayuda la herramienta de desarrollo. Se puede ver un ejemplo de
edición de código con Microsoft Visual Studio en la figura 1.32.
Prácticamente todos los IDE existentes hoy en día permiten esta edición de
código. Algunos ejemplos de estas herramientas pueden ser Eclipse, MonoDevelop,
IDE NetBeans o Glade. Algunas de estas herramientas incluso generan código
automáticamente a partir de las interfaces en desarrollo en un entorno gráfico, lo que
facilita mucho el trabajo de los programadores.