Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Capítulo 3
Capítulo 3
CAPTULO 3
!"ina #$
#l desarrollo de (U*s se realiza en dos etapas6 0ise o de los componentes 1controles, mens y ejes2 que formarn el (U*. ,odificacin de la respuesta de cada uno de los componentes ante la interaccin del usuario.
!"ina #'
5tra de ellas consiste en buscar en el :'aunc) ;ad< la opcin referente a %atlab, )acer clic en ella, con lo que %atlab despliega las opciones que contiene, entre las que se encuentra la opcin :(uide 1(U* -uilder2<, tal como se muestra en la figura6
!"ina #(
0onde se presentan las siguientes opciones6 a) Blank GUI (Default) 'a opcin de interfaz grfica de usuario en blanco 1viene predeterminada2, nos presenta un formulario nuevo, en el cual podemos dise ar nuestro programa. b) GUI with Uicontrols #sta opcin presenta un ejemplo en el cual se calcula la masa, dada la densidad y el volumen, en alguno de los dos sistemas de unidades. ;odemos ejecutar este ejemplo y obtener resultados. c) GUI with A es and !enu #sta opcin es otro ejemplo el cual contiene el men 8ile con las opciones 5pen, ;rint y ,lose. #n 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 )aciendo clic3 en el botn de comando.
!"ina #*
'os componentes principales de (U*0# son6 Barra de !en$s% !qu se encuentran las funciones elementales de #dicin de (U*s. &aleta de 'omponentes (component &alette)% !qu se encuentran los uicontrols, estos componentes permiten seleccionar los controles 1objetos2 que son los que se muestran en la figura.
(a Barra de )erramientas% #n ella se encuentran los siguientes botones Bot*n de e+ecuci*n (,un button)% !l presionarse crea la figura de la interfaz diseada en el Layout rea.
Alineaci*n de 'omponentes (Ali#nment tool)% esta opcin permite alinear los componentes que se encuentra en el rea de trabajo 1'ayout @rea2 de manera personalizada.
!"ina $+
-ave#ador de .b+etos (.b+ect Browser)% %uestra todos los objetos que se encuentran en la figura 1en forma de rbol2 y a travs del 5bject -ro&ser se pueden seleccionar los objetos.
Editor de !en$s (!en$ Editor)% #l redactor de %en crea mens de ventana y mens de conte"to.
!"ina $%
-sicamente solo se necesitan entender cinco comandos para poder describir una (U*6 uimenu, uicontrol, get, set axes. 9o obstante, lo que )ace relativamente complicado a estos comandos es el gran nmero de formas de uso que tienen. #s imposible describir todos los tipos de situaciones, pues requiere demasiado espacio y sera muy laborioso leerlo. ;or tanto, solo trataremos de e"plicar los elementos bsicos de una (U*.
!"ina $)
Aealizando llamadas a funciones de dibujo y visualizacin. %!.'!muestra todas las grficas en un tipo de ventanas especiales conocidas como "igures, en las que se sitan unos ejes de coordenadas. #stos ejes son los que proporcionan el sistema de coordenadas necesario para realizar la visualizacin de los datos. .rabajando a Bbajo nivelB, )aciendo las llamadas necesarias a funciones de %!.'!- para ir creando los objetos grficos que sean necesarios para )acer la visualizacin. ! este nivel se realizarn mltiples llamadas a la funcin set y otras similares para establecer las propiedades de los distintos objetos grficos que se vayan creando o para modificarlas durante la ejecucin del programa. #ste modo de trabajar es muy similar al uso tradicional de una biblioteca grfica que se puede )acer en un lenguaje de programacin convencional. #mpleando el (U*0#, el entorno de desarrollo de (U*s, que nos permitir definir todos los componentes grficos que deseemos, establecer sus propiedades e incorporar cdigo de respuesta a cada una de las acciones del usuario a travs de una )erramienta grfica de cmodo manejo. !dems, tiene la ventaja de que en cualquier momento podremos elegir si deseamos trabajar a alto o bajo nivel, pudiendo acceder al cdigo asociado a travs del editor de %!.'!-.
,omo podemos ver, en cualquiera de estos tres casos estamos )aciendo uso del sistema de objetos grficos de %!.'!-. #stos objetos grficos son los elementos bsicos empleados por %!.'!- 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 frecuentemente6
!"ina $3
,omo )emos dic)o, puede )aber varias ventanas abiertas, pero slo una de ellas es la ventana activa en cada momento. 0e la misma forma, una ventana puede contener varios ejes de coordenadas, pero slo unos son los ejes activos. #l objeto activo ser el ltimo objeto creado o sobre el que se )aya )ec)o clic con el ratn. ;odemos obtener los identificadores de la ventana, los ejes y el objeto activos con las rdenes6 gcf6 devuelve un entero, el identificador de la ventana activa. gca6 devuelve el identificador de los ejes activos. gco6 devuelve el identificador del objeto activo.
'a 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 borrarlos6 set 1id26 muestra en pantalla todas las propiedades del objeto al que corresponde el identificador id. get 1id26 produce un listado de las propiedades y de sus valores. set 1id, EpropiedadE, EvalorE26 establece un nuevo valor para la propiedad del objeto con identificador id. 4e pueden establecer varias propiedades en la misma llamada a set incluyendo una lista de parejas EpropiedadE, EvalorE en la llamada. get 1id, EpropiedadE26 obtiene el valor de la propiedad especificada. delete 1id26 borra el objeto cuyo identificador es id y todos sus )ijos.
!"ina $/
Botn de activacin Botn de seleccin Botn de eleccin Botn de presin Botn de aparicin
,ada botn cuenta con una serie de propiedades que e"plicaremos en el apartado siguiente.
'as propiedades de iucontrol son similares a las de uimenu. 0estacamos6 a2 =+alue?, valor6 especifica el valor por omisin de ajuste. #n el caso de interruptores de encendidoFapagado, valor es G o H. #n el caso de un control deslizante 1slider2, puede ser cualquier valor entre el mnimo y el m"imo. b2 =%in?, +alor6 establece el valor mnimo. 4u significado difiere dependiendo del estilo. c2 =%a"?, +alor6 establece el valor m"imo. 4u significado difiere dependiendo del estilo. Iay muc)as 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.
/e to est0tico1 Un static text puede e")ibir smbolos, mensajes o incluso valores numricos de una (U*, y puede colocarse en un lugar deseado. #l te"to esttico no tiene cadenas de invocacin. ! continuacin mostramos un ejemplo de te"to esttico. k+ = uicontrol (,Style,, ,text,, ! ,Strin",, ,cadena para ex#i$ir,, ! ,(osition,, &-., /., +0., 1.'* #l contenido de un te"to e")ibido puede modificarse si es necesario. #sto se )ace con el comando set. ;or ejemplo, si se ejecuta el comando que sigue desde la ventana de comandos mientras est vigente el ejemplo anterior de orden uicontrol6 set (k+, ,strin",, ,2#ora aparece un texto modi icado3,*
!"ina $$
!en$ desple#able1 'os popDup 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.
&ush button 'os ;us) button generan una accin cuando )acemos clic3 con el puntero del ratn sobre ellos. ,uando se da clic3 en un pus) button, aparece presionadoJ cuando se suelta el botn del ratn, el botn aparece levantadoJ y su rutina de llamada se ejecuta.
'asilla de verificaci*n. 'as casillas de verificacin estn dise adas para realizar operaciones de encendidoFapagado. 'as posiciones de encendidoFapagado se registran en +alue que puede e"aminarse con get1)andle, KvalueK2. 'os comandos axis on y axis o"" se escriben en la cadena de invocacin.
Bot*n de radio. ,uando solo se usa un botn de radio, no e"iste diferencia funcional alguna con respecto a una casilla de verificacin. ;or otro lado, los botones de radio en grupo son mutuamente e"clusivos 1es decir, si un botn esta encendido, todos los dems botones se apagan2, mientras que las casillas de verificacin son independientes entre s. 4in embargo, esta caracterstica e"clusiva de los botones de radio slo puede implementarse mediante la programacin del usuario en la cadena de invocacin.
Barra desli2adora1 'os sliders aceptan datos de entrada numricos con un rango especfico. 'os usuarios mueven la barra dejando presionado el botn del mouse y arrastrndola, )aciendo clic3 en la flec)a. 'a posicin de la barra indica un valor numrico.
/e to editable1 #l dispositivo de te"to editable permite al usuario teclear una cadena de entrada. 4e pueden escribir varios valores numricos en forma de vector o matriz como cadena mediante el mismo dispositivoJ esta cadena se convertir posteriormente en valores numricos con el comando strLnum.
!"ina $'
!arcos1 #l estilo marcos puede servir para agrupar dispositivos como lo botones de radio o las casillas de verificacin.
Bot*n de palanca. #l toggle button genera una accin que indica un estado binario 1on u o""2. ,uando se )ace clic3 en un toggle button, aparece presionado y permanece as )asta que se suelta el botn del mouse, y en ese momento ejecuta la llamada. Un clic3 posterior del mouse regresa al toggle button a su estado original y vuelve a ejecutar la rutina de llamada.
'a+as de lista. #l componente 'ist -o" muestra una lista de artculos y permite a usuarios seleccionar unos o ms artculos.
!3(/I&(E4 E5E4
!l crear una interfaz con el usuario, a menudo )ay necesidad de trazar una o ms grficas dentro de la interfaz. ;odemos usar el comando subplot para este fin, pero el comando axes es ms fle"ible y ofrece opciones verstiles a los programadores. #l comando axes abre un eje en un punto especificado dentro de una ventana de figura.
&,.&E,/6 I-4&E'/.,
#l inspector de propiedades est compuesto de las siguientes propiedades o atributos, tal y como se muestra en la figura.
M Espaa Borrero errano !"ina $(
,ada uno de los controles tiene propiedades particulares, los cuales se analizan a continuacin6
Back#round'olor #l color usado para rellenar el rectngulo de unicontrol. #specfica un color usando un vector de tres elementos A(- 1rojo, verde y azul2 o uno de los nombres ya predefinidos en %atlab. #l color por BdefectoB es determinado por la configuracin del sistema.
BusyAction *nterrupcin de la rutina de llamada 1callbac32. 4i una llamada es ejecutada y el usuario activa un evento en un objeto para el cual una llamada est definida, esa llamada trata de interrumpir la primera llamada. 'a primera llamada puede ser interrumpida solamente por uno de los siguientes comandos6 dra!no!, "igure, get"rame,
!"ina $*
Nota: 4i la llamada interrumpida es una llamada de 'elete(cn o &reate(cn o una de una figura de &lose)e%uest o )esi*e(cn, se interrumpe y ejecuta sin importar el valor de la propiedad *nterrumpible del objeto.
ButtonDown7cn Una rutina de llamada que se ejecuta cuando se presiona un botn del mouse mientras el cursor est en un uicontrol. ,uando la propiedad enable del unicontrol est desactivada, el Button'o!n(cn se ejecuta al )acer clic3 en el unicontrol. #sto es til para implementar acciones, para modificar interactivamente las propiedades de control del objeto, como el tama o y la posicin. #sta rutina se define como una cadena 1string2 que es una e"presin vlida en %atlab o el nombre de un arc)ivo % 1+,"ile2. 'a e"presin se ejecuta en el espacio de trabajo de %atlab. 'a propiedad de llamada define la rutina de llamada que se ejecuta cuando se )ace clic en el botn.
'allback ,ontrola la accin. Una rutina que se ejecuta cuando se activa un objeto de la clase uicontrol. 0efine esta rutina como una cadena. 'a e"presin se ejecuta en el espacio de trabajo de %atlab. ;ara ejecutar la rutina para un control de te"to editable, escribe el te"to deseado y despus sigue uno de los siguientes pasos6
!"ina '+
'data *magen de color verdadero mostrada en un control. Una matriz tridimensional de valores A(- que definen una imagen de color verdadero que es mostrada ya sea en un pus) button o un toggle button. ,ada valor debe tener un rango entre cero y uno.
'reate7cn Autina de llamada ejecutada cuando se crea un objeto. #sta propiedad define una rutina de llamada que es ejecutada cuando %atlab crea un objeto de la clase uicontrol. 4e debe definir esta propiedad como un valor por defecto para los uicontrols.
Delete7cn Una rutina de llamada que se ejecuta cuando se borra un objeto uicontrol. %atlab ejecuta la rutina antes de destruir las propiedades del objeto, as sus valores estn disponibles para la rutina de llamada.
Enable !ctiva o desactiva el uicontrol. #sta propiedad controla cmo los uicontrols responden a un clic del mouse, incluyendo qu rutina de llamada se ejecuta. on D #l uicontrol es operacional inacti-e D no es operacional pero se ve como si estuviera activado o"" D 9o es operacional y su etiqueta se vuelve gris ,uando se )ace clic con el botn izquierdo del mouse sobre un objeto uicontrol que tiene su propiedad enable activada 1en on2, %atlab ejecuta las siguientes acciones6
!"ina '%
,uando se )ace clic con el botn izquierdo del mouse sobre un objeto uicontrol que tiene su propiedad enable inactiva, o cuando se )ace clic derec)o en uno en el que #nable tiene cualquier valor, %atlab ejecuta estas acciones en este orden6 !signa la propiedad de la figura .election/ pe. !signa la propiedad de la figura &urrentPoint. #jecuta la rutina de llamada 0indo!Button'o!n(cn de la figura. #n un clic3 derec)o, si el uicontrol esta asociado con un conte"t menu, registra el conte"t menu. #jecuta la llamada Button'o!n(cn del control. #jecuta la llamada del elemento seleccionado del conte"t menu. 9o ejecuta la rutina de llamada del control. ;oniendo esta propiedad inactiva te capacita para implementar arrastre o cambio de tama o de objetos usando la rutina de llamada Button'o!n(cn1
E tent .ama o de un carcter cadena uicontrol. Un vector de cuatro elementos que define el tama o y la posicin de un carcter de tipo cadena usado para etiquetar el uicontrol. .iene la forma6 &., ., 6idt#, #ei"#t' 'os dos primeros elementos siempre son cero. &idt) 1anc)o2 y )eig)t 1alto2 son las dimenciones del rectngulo. .odas las medidas son unidades especificadas por la propiedad Units1
!"ina ')
7ontAn#le *nclinacin de un carcter. ;oniendo esta propiedad en Italic 1italica2 u obli%ue 1oblicua2 selecciona una versin inclinada de la fuente, cuando est disponible en el sistema.
7ont-ame #l nombre de la fuente que mostrar la cadena. ;ara mostrar e imprimir correctamente, debe ser un tipo de fuente que el sistema soporte. ;ara usar un anc)o ajustado que se vea bien en cualquier e"terior 1y que se muestre correctamente en Mapn, donde usan caracteres BmultibyteB2, se debe poner al 8ont9ame la cadena 8i"ed$idt) 1esta cadena es sensible a las maysculas26 Set (uicontrol5#andle, 78ont9ame7, 78ixed:idt#7 *
7ont4i2e .ama o de la fuente. Un nmero que especifica el tama o de la fuente que va a ser mostrado en la cadena, en unidades determinadas por la propiedad (ontUnits. #l tama o por defecto es dependiente del sistema.
7ontUnits Unidades del tama o de la fuente. #sta propiedad determina las unidades usadas por la propiedad (ont.i*e.'as unidades normalizadas interpretan el (ont.i*e como una fraccin de la altura del uicontrol. ,uando se cambia el tama o del uicontrol,
M Espaa Borrero errano !"ina '3
7ont8ei#ht ;eso de un carcter. ;oniendo esta propiedad en -old )ace que %atlab use una versin BnegritaB de la fuente, cuando est disponible en el sistema.
7ore#round'olor ,olor de te"to. #sta propiedad determina el color del te"to definido por la propiedad 4tring. #specifica un color usando un vector de tres elementos A(- o un nombre predefinido en %atlab.
!"ina '/