Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Capã-Tulo 3 PDF
Capã-Tulo 3 PDF
CAPTULO 3
Una interfaz es una de las partes ms importantes de cualquier programa puesto que
determina qu tan factible y preciso ser el desempeo del programa ante los comandos que el
usuario pretenda ejecutar. Aunque un programa sea muy poderoso, si se manipula por medio de
una interfaz pobremente elaborada, tendr poco valor para un usuario inexperto. Es por esto que
las interfaces grficas tienen una gran importancia para usuarios inexpertos o avanzados de
cualquier programa ya que facilitan su uso.
Ejemplos de interfaces grficas son las ventanas de Word, Excel, la ventana de Matlab
entre otras. Una interfaz grfica consta de botones, mens, ventanas, etc, que permiten utilizar
de una manera muy simple y en ocasiones casi intuitiva programas realizados en ambientes
como Windows y Linux. Las interfaces grficas tambin se conocen como interfaces de usuario.
El nombre en ingls de las interfaces grficas es Graphical User Interfase y se denominan GUI,
por lo que nosotros tambin nos referiremos a ellas de la misma manera.
Existen diferentes lenguajes de programacin que permiten crear GUIs tales como
Visual C, Visual Basic, TK y MATLAB por mencionar algunos. Todos ellos permiten usar
diferentes controles y tienen distintas maneras de programarlos.
MATLAB nos permite realizar GUIs de una manera sencilla usando una herramienta
llamada GUIDE (GUI Development Environment). En este captulo presentaremos una
introduccin muy completa a las tcnicas en MATLAB para crear interfaces grficas.
Una vez que los controles estn en posicin se editan las funciones de llamada
(Callback) de cada uno de ellos, escribiendo el cdigo de MATLAB que se ejecutar cuando el
control sea utilizado. Siempre ser difcil disear GUIs, pero no debera ser difcil implementarlas.
GUIDE est diseado para hacer menos tedioso el proceso de aplicacin de la interfaz
grfica y obviamente para trabajar como herramienta de trazado de GUIs. Entre sus poderosos
componentes est el editor de propiedades (property editor), ste se encuentra disponible en
cualquier momento que se est lidiando con los controles de MATLAB. El editor de propiedades
por separado se puede concebir como una herramienta de trazado, y asistente de codificacin
(revisin de nombres y valores de propiedades). Cuando se fusiona con el panel de control, el
editor de men, y herramienta de alineacin, resulta una combinacin que brinda un inigualable
control de los grficos en MATLAB.
>> guide
Otra manera de entrar en GUIDE es travs de la opcin File, haciendo clic en New y por
ltimo eligiendo la opcin GUI, (como se muestra en la figura).
Otra de ellas consiste en buscar en el Launch Pad la opcin referente a Matlab, hacer
clic en ella, con lo que Matlab despliega las opciones que contiene, entre las que se encuentra la
opcin Guide (GUI Builder), tal como se muestra en la figura:
Esta opcin es otro ejemplo el cual contiene el men File con las opciones
Open, Print y Close. En el formulario tiene un Popup menu, un push button y un objeto
Axes, podemos ejecutar el programa eligiendo alguna de las seis opciones que se
encuentran en el men despegable y haciendo click en el botn de comando.
Con una GUI, el flujo de cmputo est controlado por las acciones en la interfaz.
El control guarda un string que describe la accin a realizar, cuando se invoca puede
consistir en un solo comando de MATLAB o una secuencia de comandos, o en una llamada a
una funcin. Es recomendable utilizar llamadas a funciones, sobre todo cuando se requieren de
ms de unos cuantos comandos en la invocacin.
Bsicamente solo se necesitan entender cinco comandos para poder describir una
GUI: uimenu, uicontrol, get, set y axes. No obstante, lo que hace relativamente complicado a
estos comandos es el gran nmero de formas de uso que tienen. Es imposible describir todos los
tipos de situaciones, pues requiere demasiado espacio y sera muy laborioso leerlo. Por tanto,
solo trataremos de explicar los elementos bsicos de una GUI.
Como podemos ver, en cualquiera de estos tres casos estamos haciendo uso del
sistema de objetos grficos de MATLAB. Estos objetos grficos son los elementos bsicos
empleados por MATLAB para visualizar datos, y estn organizados en una jerarqua como la de
la siguiente figura, en la que se muestran los tipos de objetos grficos empleados ms
frecuentemente:
Como hemos dicho, puede haber varias ventanas abiertas, pero slo una de ellas es la
ventana activa en cada momento. De la misma forma, una ventana puede contener varios ejes
de coordenadas, pero slo unos son los ejes activos. El objeto activo ser el ltimo objeto creado
o sobre el que se haya hecho clic con el ratn.
Podemos obtener los identificadores de la ventana, los ejes y el objeto activos con las
rdenes:
La principal utilidad que tiene conocer los identificadores de los objetos grficos es que a
travs de ellos podremos modificar las propiedades de los objetos o incluso borrarlos:
set (id): muestra en pantalla todas las propiedades del objeto al que corresponde
el identificador id.
get (id): produce un listado de las propiedades y de sus valores.
set (id, 'propiedad', 'valor'): establece un nuevo valor para la propiedad del objeto
con identificador id. Se pueden establecer varias propiedades en la misma
llamada a set incluyendo una lista de parejas 'propiedad', 'valor' en la llamada.
get (id, 'propiedad'): obtiene el valor de la propiedad especificada.
delete (id): borra el objeto cuyo identificador es id y todos sus hijos.
Cada botn cuenta con una serie de propiedades que explicaremos en el apartado
siguiente.
popup
push
radio
checkbox
slider
edit (texto editable)
text (texto esttico)
frame
Hay muchas ms propiedades que pueden incluirse en los comandos del uicontrol, tal
como sucede con las propiedades del uimenu, aunque al programar conviene minimizar el
nmero de propiedades a fin de simplificar el script.
Texto esttico.
Un static text puede exhibir smbolos, mensajes o incluso valores numricos de una GUI,
y puede colocarse en un lugar deseado. El texto esttico no tiene cadenas de invocacin. A
continuacin mostramos un ejemplo de texto esttico.
Men desplegable.
Los pop-up mens difieren de los mens de interfaz con el usuario en que pueden
aparecer en cualquier punto de la ventana de la figura, mientras que los mens de interfaz con el
usuario solo se localizan en la parte superior.
Push button
Los Push button generan una accin cuando hacemos click con el puntero del ratn
sobre ellos. Cuando se da click en un push button, aparece presionado; cuando se suelta el
botn del ratn, el botn aparece levantado; y su rutina de llamada se ejecuta.
Casilla de verificacin.
Botn de radio.
Cuando solo se usa un botn de radio, no existe diferencia funcional alguna con
respecto a una casilla de verificacin. Por otro lado, los botones de radio en grupo son
mutuamente exclusivos (es decir, si un botn esta encendido, todos los dems botones se
apagan), mientras que las casillas de verificacin son independientes entre s. Sin embargo, esta
caracterstica exclusiva de los botones de radio slo puede implementarse mediante la
programacin del usuario en la cadena de invocacin.
Barra deslizadora.
Los sliders aceptan datos de entrada numricos con un rango especfico. Los usuarios
mueven la barra dejando presionado el botn del mouse y arrastrndola, haciendo click en la
flecha. La posicin de la barra indica un valor numrico.
Texto editable.
Las palabras clave en el comando anterior son Style, edit y get que capturan el texto
introducido.
Marcos.
El estilo marcos puede servir para agrupar dispositivos como lo botones de radio o las
casillas de verificacin.
Botn de palanca.
El toggle button genera una accin que indica un estado binario (on u off). Cuando se
hace click en un toggle button, aparece presionado y permanece as hasta que se suelta el botn
del mouse, y en ese momento ejecuta la llamada. Un click posterior del mouse regresa al toggle
button a su estado original y vuelve a ejecutar la rutina de llamada.
Cajas de lista.
El componente List Box muestra una lista de artculos y permite a usuarios seleccionar
unos o ms artculos.
MLTIPLES EJES
Al crear una interfaz con el usuario, a menudo hay necesidad de trazar una o ms
grficas dentro de la interfaz. Podemos usar el comando subplot para este fin, pero el comando
axes es ms flexible y ofrece opciones verstiles a los programadores.
El comando axes abre un eje en un punto especificado dentro de una ventana de figura.
PROPERTY INSPECTOR
Cada uno de los controles tiene propiedades particulares, los cuales se analizan a
continuacin:
BackgroundColor
Especfica un color usando un vector de tres elementos RGB (rojo, verde y azul)
o uno de los nombres ya predefinidos en Matlab. El color por "defecto" es determinado
por la configuracin del sistema.
BusyAction
ButtonDownFcn
Una rutina de llamada que se ejecuta cuando se presiona un botn del mouse mientras
el cursor est en un uicontrol. Cuando la propiedad enable del unicontrol est desactivada, el
ButtonDownFcn se ejecuta al hacer click en el unicontrol. Esto es til para implementar acciones,
para modificar interactivamente las propiedades de control del objeto, como el tamao y la
posicin.
Esta rutina se define como una cadena (string) que es una expresin vlida en Matlab o
el nombre de un archivo M (M-file). La expresin se ejecuta en el espacio de trabajo de Matlab.
La propiedad de llamada define la rutina de llamada que se ejecuta cuando se hace clic
en el botn.
Callback
Para ejecutar la rutina para un control de texto editable, escribe el texto deseado
y despus sigue uno de los siguientes pasos:
Esta rutina definida para los componentes frame y ststic text no se ejecuta
porque ninguna accin est asociada con estos objetos.
Cdata
CreateFcn
DeleteFcn
Enable
on - El uicontrol es operacional
Cuando se hace clic con el botn izquierdo del mouse sobre un objeto uicontrol
que tiene su propiedad enable activada (en on), Matlab ejecuta las siguientes acciones:
Cuando se hace clic con el botn izquierdo del mouse sobre un objeto uicontrol
que tiene su propiedad enable inactiva, o cuando se hace clic derecho en uno en el que
Enable tiene cualquier valor, Matlab ejecuta estas acciones en este orden:
Extent
Tiene la forma:
Los dos primeros elementos siempre son cero. width (ancho) y height (alto) son
las dimenciones del rectngulo. Todas las medidas son unidades especificadas por la
propiedad Units.
FontAngle
FontName
Para usar un ancho ajustado que se vea bien en cualquier exterior (y que se
muestre correctamente en Japn, donde usan caracteres "multibyte"), se debe poner al
FontName la cadena
FontSize
FontUnits
FontWeight
Peso de un carcter. Poniendo esta propiedad en Bold hace que Matlab use una
versin "negrita" de la fuente, cuando est disponible en el sistema.
ForegroundColor
Color de texto. Esta propiedad determina el color del texto definido por la
propiedad String. Especifica un color usando un vector de tres elementos RGB o un
nombre predefinido en Matlab.