Sunteți pe pagina 1din 11

Creacin de Interfaces Grficas de Usuario (GUI) con Matlab

Objetivo del curso


El objetivo de este curso es aprender a realizar interfaces grficas de usuario, a las que nos
referiremos como GUI-s que es como se normalmente se conocen. El lenguaje ms habitual
para crear GUI-s es Java, ya que tiene la enorme ventaja de funcionar en cualquier mquina,
sin embargo Java resulta muy lenta para hacer clculos eficientemente, y es aqu donde
MatLab es ms poderoso. Por otro lado, las GUI-s creadas con MatLab pueden ser entregadas
al ordenador del cliente (quien posiblemente no tenga ms que un navegador) y ser
ejecutadas en el ordenador de quien cre la interfaz en MatLab (y que por supuesto tiene un
MatLab funcionando), de modo que la ventaja relativa de Java esta parcialmente ofertada
tambin por MatLab. Las GUI-s son herramientas muy tiles para entregar aplicaciones a
aquellas personas que no saben lo suficiente de programacin y que quieren beneficiarse de
las ventajas de un programa.

Organizacin del material.


El curso est estructurado de la siguiente manera: i) Diseo de una GUI, ii) Creacin de una
GUI sencilla y iii) Analizando una GUI ms complicada

Diseo de una GUI.


Antes de empezar a programar es imprescindible hablar con el usuario final de la GUI . Es
importantsimo entender cules son las necesidades exactas que tienen que ser cubiertas por
la aplicacin. Para ello es necesario entender el tipo de datos y variables que son introducidas
por el usuario, as como las excepciones que puedan producirse, los casos que ocurren pocas
veces pero que hay que tener en cuenta, etc. Tambin es necesario saber cmo quiere el
cliente que se presenten los datos; si se necesitan grficos o tablas que salgan por impresora, o
cmo se guardan los resultados, dnde se guardan y en qu formato lo hacen. La parte del
diseo es, con mucha diferencia, la ms importante desde el punto de vista del usuario y por
tanto tambin lo es desde el punto de vista empresarial. Para disear correctamente una GUI,
lo mejor es hacerlo con papel y lpiz. Presentar un boceto al cliente y mejorarlo con l es la
mejor opcin. De esta manera se consigue que no haya sorpresas y evita que despus de haber
realizado un montn de trabajo luego haya que tirarlo a la basura y que encarece mucho los
proyectos, y adems se consigue que el cliente se implique en el proyecto poniendo su talento
y sus preferencias en la herramienta que al final usar l mismo. Las GUI-s tienen que hacerse
de modo que los botones estn donde la gente espera que estn. Si nuestra GUI tiene varias
pginas distintas y en cada una de ellas hay un botn que dice Guardar es conveniente que
ese botn est localizado en el mismo sitio siempre. Todo esto parece ser de un sentido tan
comn que parece innecesario hacer notar que el papel y el lpiz son la mejor herramienta, sin
embargo al hacer GUI-s slo el sentido comn tiene algn sentido. Una vez que tenemos claro
qu objetos tendr la GUI, grficos, textos, radio buttons, check boxes, edicin de texto,
entrada de valores, lectura de matrices, etc, y una vez que tengamos claro de qu forma
aparecern en la interfaz (el layout) es necesario hacer un programa de tipo script que tenga la
misma funcionalidad que la GUI que queremos programar. Antes de incorporar el programa a
la GUI, es necesario hacer todo tipo de pruebas con l hasta estar completamente seguros de
que el programa que vamos a incorporar en la GUI es el programa que queremos. Para hacer
las necesarias pruebas lo mejor es hacerlas sobre un script y no directamente sobre la GUI.
Una vez que tengamos el script guardado podremos incorporar los distintos trozos del script
en la GUI, de modo que al hacer las pruebas sobre la GUI podamos contrastar los resultados
con los que obtenemos del script. Una vez hayamos acabado con los test sobre la GUI
definitiva y estemos completamente seguros de su correcto funcionamiento, la GUI puede ser
entregada al cliente.

Creacin de una GUI sencilla.


Para crear una GUI sencilla primero tenemos que llamar a la ventana de comandos de Matlab.
Esto se hace picando sobre el icono de Matlab, que al abrirse nos mostrar la siguiente

Como se puede ver en la ventana de comando la versin que estoy usando es la nueva versin
de Matlab para estudiantes 7.4.0.287 (R2007a). Es muy similar a las ltimas versiones para
empresas y nicamente tiene restricciones legales que impiden usar esta versin con fines
empresariales. La ventana de comandos que aparece aqu tiene el comando redir, que es un
programita que me he hecho para que me lleve a directorios seleccionados. Los que no se
hayan hecho un programa como ese deben acudir al desplegable que aparece sobre la ventana
de comandos como Current Directory y llevar a la ventana de comandos al directorio donde
desees trabajar. Para empezar a crear una GUI vamos a File-> New->GUI como en:
Al seleccionar que queremos una GUI se nos abre una ventana de dilogo en la que tenemos
una serie de opciones

Podemos abrir una GUI que ya exista, lo cual haremos despus de haber guardado nuestra
primera GUI o comenzar con una GUI en blanco. Las otras ofrecen una plantilla en la que ya
existen algunos controles (Uicontrols), o en la que ya hay incorporado un grfico y un men y
finalmente incorporar una ventana de dilogo. No obstante, todas esas cosas las haremos en
estas secciones, de modo que elegimos tener una GUI en blanco. Abajo, en la ventana de
dilogo, observamos un Check Box que dice Save on startup as: y una ventana que te permite
seleccionar un nuevo directorio. Mi sugerencia es marcar la casilla para activar la opcin
Browse y meter el nombre de una interfaz en un directorio en el que no haya nada. El nombre
que yo he elegido es interface1 en un directorio nuevo y obtengo lo siguiente:
Como puedes ver, el nombre de la interfaz es el elegido, y por supuesto est en el directorio
que yo he seleccionado. De no haberlo guardado, Matlab habra titulado provisionalmente a la
interfaz como untitled.fig y la habra guardado en el directorio donde se hallaba la ventana de
comandos. La cuestin ms importante es que al guardar la interfaz en el mismo comienzo nos
encontramos con unos archivos nuevos en nuestro directorio elegido. Un archivo es
interface1.fig y el otro es interface1.m. Antes de comenzar a manipularlos es conveniente
echarles un vistazo para ver las diferencias que se van a ir produciendo a medida que vayamos
introduciendo elementos dentro de la interfaz.

Entorno de desarrollo GUIDE Ventana de desarrollo GUI


Cambio de preferencias para mostrar nombres

DETALLES DE USO:
El editor permite construir interfaces arrastrando y soltando componentes en el rea de
diseo de la GUI

Todas las GUIs creadas con guide empiezan con una funcin inicial (callback) que se invoca
cuando se invoca la interfaz Matlab 11

La operacin automtica de guardado (save) genera un fichero .m y un fichero .fig


El fichero .fig contiene el diseo del GUI en binario y el fichero .m contiene el cdigo que
controla el GUI

Componentes disponibles en la paleta

La interfaz que se desarrollar consiste en permitir al usuario seleccionar entre tres


conjuntos de datos y mostrarlos segn tres tipos de grficos

Para ello se insertarn los componentes adecuados desde la paleta de componentes (Push
Buttons, Matlab 13 desde la paleta de componentes (Push Buttons, Panel, Static Text box, Pop-
up Menu, y Axes)

Se puede redimensionar el tamao del canvas de la interfaz en modo diseo, aunque


despus se puede modificar haciendo uso de Tools

Se inserta un Push Button y por duplicacin dos ms

Se aade un Panel para colocar los botones dentro


Aadir Static Text, Pop-up Menu y Axis

Modificacin de propiedades con Property Inspector: Figure, Name: GUI Simple Panel ,
Title: Tipos de grficos Push Button, String: Surf, Tag: surf_pb Push Button, String: Mesh,
Tag: mesh_pb Matlab 19 Push Button, String: Contour, Tag: contour_pb Static Text, String:
Seleccionar datos Pop-up Menu, String: (editor) peaks, membrane, sin c Tag: plot_popup

Grabar GUI. File - Save As: ejm_gui (sufijo .fig)

Se puede activar (Run) la GUI y editar el cdigo


Se puede adaptar el cdigo generado por GUIDE para ejecutarse cuando se seleccionan los
controles

El cdigo de usuario introducido se llama funciones callback. El editor M facilita la


navegacin por estas funciones con el icono Show Functions

Primero se modifica la funcin OpeningFcn que se ejecuta al inicio de ejecutar el GUI

En esta funcin se puede cargar o crear datos a usar en el GUI y realizar algunos grficos
iniciales Para compartir datos dentro del GUI se usa la Matlab 22

Para compartir datos dentro del GUI se usa la estructura handles que se pasa entre funciones
Despus de introducir el cdigo se activa la GUI

Matlab proporciona los comandos y herramientas necesarias para la generacin de cdigo


ejecutable con el Matlab Compiler (sin requerir el entorno Matlab) pudiendo ser distribuido a
usuarios finales

Otras opciones son la integracin de Matlab en Matlab 30

Otras opciones son la integracin de Matlab en aplicaciones C o C++, crear paquetes de


libreras Matlab, incorporar algoritmos creados en Matlab en aplicaciones desarrolladas con
otros lenguajes y tecnologas, encriptar y proteger el cdigo Matlab Generacin de ejecutables
Para invocar el compilador Matlab se ejecuta la herramienta GUI deploytool o el comando
mcc

En los ejecutables o libreras creadas se puede incluir el MATLAB Compiler Run time (MCR),
que permite la ejecucin de los mismos en ordenadores que no Matlab ejecucin de los
mismos en ordenadores que no tienen una versin instalada de Matlab

Una aplicacin o librera generada por Matlab tiene dos partes: un fichero binario
dependiente de la plataforma y un fichero con el cdigo y datos Matlab encriptado Generacin
de ejecutables

Matlab Compiler requiere la instalacin de un compilador C o C++ compatible (tambin


Fortran) Un compilador, gratuito, soportado es Microsoft Visual C++ Express Matlab

Para seleccionar el compilador para usar con Matlab Compiler se usa el comando >> mbuild
-setup que pedir el path donde se encuentra instalado MS VC sino lo detecta
automticamente Generacin de ejecutables

Invocar la herramienta de generacin de ejecutables >> deploytool aparece la ventana de la


herramienta en el entorno

Generacin de ejecutables
Creacin de un proyecto de despliegue indicando Name, Location Target
Se agrega la funcin principal (.m) y los ficheros necesarios desde la ventana de directorios o
con add

Se puede probar el ejecutable generado, navegando por el directorio distrib del proyecto.
Este ejecutabl e no incluye el MCR

S-ar putea să vă placă și