Creación de Interfaces en MATLAB
Creación de Interfaces en MATLAB
en Matlab
Guía Básica
Mecánica de Sólidos
2017-1
A continuación, se debe seleccionar una plantilla para empezar a crear la interfaz (nos
referiremos a ella como GUI de aquí en adelante). Lo más recomendado es seleccionar la opción
“Blank GUI”, ya que permite crear la interfaz desde cero.
La última opción que se recomienda activar antes de comenzar a crear la interfaz es que la
interfaz creada tenga tamaño ajustable. Para ello, hacer clic en “Tools”<”GUI Options…” y
seleccionar la opción “Proportional”.
Push Button
Un “Push Button” es un botón que activa su “callback” al presionarlo. No tiene parámetros que
se puedan modificar por el futuro usuario y no se activa hasta que es presionado. Por lo general,
se usa para ejecutar funciones que dependan o no de parámetros definidos mediante otros
componentes.
Check Box
Un “Check Box” es un recuadro que puede estar desactivado (sin ticket) o activado (con ticket).
Se pueden usar tanto como parámetros binarios (sí o no) para otros elementos (como un “Push
Button”), como para ejecutar directamente una función (e.g. activar o desactivar la grilla de un
gráfico).
Edit Text
O texto editable, es un recuadro en el que el usuario puede escribir cualquier cosa, la cual será
guardada como un “string” por el programa. El programador definirá si desea seguir trabajando
con esta clase o si desea traspasarlo a un valor numérico (revisar str2double o str2num,
funciones de Matlab). Lo anterior dependerá de cómo se utilizará tal valor. Se puede utilizar
para que al editar el texto se ejecute un comando inmediatamente o sólo como una forma de
ingresar parámetros para otro componente.
Static Text
O texto estático, es un recuadro de lectura, es decir, el usuario no lo puede editar. Se usa para
que el programa le de mensajes al usuario, por ejemplo, qué archivo ha cargado, qué es lo que
va en un “Edit Text”, que valor está tomando una variable, etc.
Pop-up Menu
Este componente permite al usuario seleccionar una opción dentro de las que han sido
previamente definidas. Se puede utilizar para activar una función o sólo como parámetro para
otro elemento de la GUI.
Axes
“Axes” es simplemente una ventana gráfica colocada dentro de la interfaz, en la que se puede
graficar lo que se desee, siempre y cuando se especifique que se pretende graficar sobre ella.
Esto será explicado más adelante. Ya que no se puede activar, sólo se usa para mostrar
resultados y no para definir parámetros o activar funciones.
Panel
Un “Panel” es simplemente un recuadro de color diferente al fondo de la interfaz, que se utiliza
para agrupar botones de una manera más ordenada y que permite moverlos a todos como un
conjunto.
Toolbar Editor
No es un componente como tal, sino que permite crear otro componente llamado “Toolbar” o
barra de herramientas. Para acceder a éste, se debe hacer clic en “Tools”<”Toolbar Editor…”.
Ahí se abre una imagen como la siguiente:
Las distintas herramientas deben ser arrastradas hasta la barra donde sale “Add tools here to
créate a toolbar…”. Esto es bastante importante si se van a utilizar gráficos, ya que es la forma
más sencilla de permitirle al usuario navegar a través de ellos.
Conceptos importantes
Tag
Un “Tag” o etiqueta es la forma en la que cualquier elemento de la GUI es referido dentro del
código que la define. Cada vez que se crea un nuevo componente, el asitente de creación le
agrega una etiqueta predefinida. Se recomienda firmemente editarla con un nombre que le haga
sentido al programador, aunque se debe procurar que sea diferente al nombre de cualquier
variable o función. Para cambiar esto, se puede hacer doble clic sobre el elemento en el editor
de interfaz o utilizar el clic derecho y seleccionar “Property Inspector”. Al hacerlo, aparece una
ventana como esta:
“Handles” también se utiliza para indicar en que “Axes” se desea graficar, por ejemplo, usando
la siguiente sintaxis:
Variables globales
Uno de los problemas a la hora de crear una interfaz, es que inicialmente todas las variables son
locales, es decir, sólo existen dentro de la función que las utiliza. Para solucionar este problema
existen diversas formas. Una que ya ha sido explicada es utilizar “handles”, lo que pese a
conservar las variables como locales, permite llamar a cualquier variable definida en la interfaz
desde cualquier función “callback”. Esto es útil cuando la es un parámetro que el usuario
cambiará según le parezca conveniente. Por otro lado, a veces hay variables que se desean
definen dentro de un “callback” y que por ende, no son definidos en pantalla, por ejemplo, una
variable que es igual al producto punto entre dos vectores ingresados por el usuario. Una de las
formas más sencillas de no volver a calcular en todas las funciones esta variable y ser capaz de
exportarlo a la ventana de comandos de Matlab es utilizar el comando “global”, el cual declara
una variable como global. Este se utiliza antes de definir las variables dentro de una función y
también antes de llamarlas en otro lugar. Supongamos que se desea guardar las variables A, B y
C como globales. Dentro de una función se escribiría algo así:
La interfaz que se creará permite graficar la distribución de esfuerzos en una barra de sección
transversal rectangular, dadas las dimensiones de ésta y las funciones de momento, corte y axial
en función de x (variable en la dirección longitudinal). En este documento no se explicará el
funcionamiento de las funciones que permiten dicho cálculo, ya que se escapa del alcance de
esta guía. La interfaz permite generar distintos tipos de gráficos, lo que ayudará a explicar los
diferentes componentes de la interfaz (“Push Buttons”, “Check Boxes”, “Edit Texts”, etc.).
1.Diseño de la interfaz
Se presenta el bosquejo con todos los componentes de la GUI ya colocados en su lugar.
En la interfaz son fácilmente reconocibles dos “axes” para generar gráficos, dos paneles con
textos editables para que el usuario ingrese datos, textos estáticos indicando que se debe
ingresar en cada uno de los anteriores, un “Push Button” que permitirá graficar, un “Pop-up
Menu” que actualmente indica Máximos esfuerzos y un “Check Box” que permitirá activar o
desactivar la grilla para ambos gráficos.
Lo primero que se puede notar es que no aparecen las unidades de medida para la geometría
de la barra ni para las funciones de esfuerzos internos. En términos del programa esto no
importa, siempre y cuando se utilicen siempre las mismas unidades. Por lo anterior, se editarán
los textos estáticos.
2.1. Editar textos
Para realizar esto, se debe hacer clic derecho sobre un texto estático y seleccionar “Property
Inspector…”. Luego, se debe buscar la propiedad “String” y editarla, como se muestra en la
siguiente imagen:
También se modificó el título del panel que contiene a las funciones de esfuerzos internos. Para
hacer esto, se debe seleccionar la propiedad “Title” dentro del inspector de propiedades
correspondiente. El resultado se muestra en la siguiente imagen:
También se olvidó modificar las etiquetas o “Tags” de algunos elementos. Esto se hará a
continuación:
2.2. Cambiar etiquetas
Para hacer esto, también se debe seleccionar el “Property Inspector”, pero esta vez se selecciona
la propiedad “Tag”. En este caso, se cambiarán las etiquetas del “Pop-up Menu” y del “Check
Box”.
Se dejó la etiqueta del “Pop-up Menu” como “tipografico” y la del “Check Box” como “grilla”.
Si se desea mover algún componente, basta con hacer clic en un elemento, mantenerlo apretado
y arrastrarlo hacia donde se desee. Los tamaños se editan como si fueran imágenes de una
presentación Power Point. Tener CUIDADO con los TIEMPOS DE RESPUESTA del asistente de
creación. Por ejemplo, la versión 2017 de Matlab funciona mucho más suave y rápido (no se
queda pegada) que la versión 2015, probablemente porque la más reciente está más optimizada
en esta área.
Esto se puede hacer desde el código o desde la ventana gráfica con el botón “Run” .