Los componentes de una GUI pueden incluir menús, barras de herramientas, botones, radio botones, listas, etc

CAPIII. INTERFACES GRAFICAS EN MATLAB BIOTRONIK-2011 CAPIII. INTERFACES GRAFICAS EN MATLAB III.1. GUIDE Estas secciones describen como crear interfa

4 downloads 109 Views 719KB Size

Recommend Stories


CAJA ENHEBRAR BOTONES Ref
Motricidad CAJA ENHEBRAR BOTONES Ref. 8240081 Ideales solo para enhebrar o tambien para clasificar de manera numerica o mediante los diferentes colore

demostración con botones y animaciones
219 USO DE FIREWORKS CS5 Creación de animaciones Estados y capas Las páginas contienen estados y los estados incluyen capas. Una página nueva sólo c

Story Transcript

CAPIII. INTERFACES GRAFICAS EN MATLAB

BIOTRONIK-2011

CAPIII. INTERFACES GRAFICAS EN MATLAB III.1. GUIDE Estas secciones describen como crear interfaces graficas de usuario (GUI) utilizando GUIDE, el ambiente de desarrollo de interfaces graficas de Matlab. Una GUI es una exposición grafica en una o más ventanas conteniendo controles, llamados componentes, que permiten al usuario realizar tareas interactivamente. El usuario de una GUI no necesita crear un script o escribir comandos en la línea de comandos para realizar tareas, a diferencia de codificar un programa para realizar una tarea, el usuario de una GUI no necesita comprender los detalles de como se realizan dichas tareas. Los componentes de una GUI pueden incluir menús, barras de herramientas, botones, radio botones, listas, etc. III.2. Pasos iniciales Antes de comenzar a construir una GUI, debemos diseñarla, tomando en cuenta, al menos, lo siguiente:  Quienes serán los usuarios de la GUI  Que quieres que haga la GUI  Como interactuaran los usuarios con la GUI  Que componentes de la GUI requerirán funciones asociadas. Cuando diseñamos cualquier software necesitamos entender los propósitos que la nueva GUI va a satisfacer, usted o los usuarios potenciales de la GUI deberán especificar detalladamente sus requerimientos antes de empezar a construir, esto incluye especificar las entradas, salidas, indicadores, comportamiento de la GUI y la aplicación que controla. Para abrir GUIDE, escribimos guide en la ventana de comandos o lo seleccionamos desde la barra de herramientas donde es representado por el siguiente icono: Luego se visualizara una ventana parecida a la que mostramos a continuación

Figura 1. Ventana de presentación GUIDE Franco M. Rosa Alagón

1

[email protected]

CAPIII. INTERFACES GRAFICAS EN MATLAB

BIOTRONIK-2011

III.3. Creación de GUIs Esta sección muestra como utilizar GUIDE para crear la GUI mostrada en la siguiente figura:

Botones

Texto estático Menú emergente

Ejes El GUI contiene:  Un componente de ejes  Un menú emergente conteniendo tres conjuntos diferentes de datos que corresponden a las funciones de picos, membrana, y sene de Matlab.  Un texto estático para etiquetar al menú emergente  Tres botones, donde cada uno ofrece diferentes opciones de graficas. Para utilizar el GUI, seleccionamos los datos a graficar en el menú, luego presionamos en el botón que corresponda a la grafica que deseemos visualizar. III.3.1 Diseño de GUI Empezamos tipeando guide en el prompt, luego, en el cuadro de dialogo de inicio rápido seleccionamos la opción Blank GUI (Default) luego el editor nos mostrara una imagen parecida a la siguiente:

Franco M. Rosa Alagón

2

[email protected]

CAPIII. INTERFACES GRAFICAS EN MATLAB

BIOTRONIK-2011

En ella empezamos a colocar los componentes especificados y los alineamos. Los componentes se eligen de la barra de componentes ubicada a la izquierda del cuadro. Luego tendremos un resultado parecido al siguiente.

Ahora, cambiaremos el texto que aparece sobre los controles, esto se logra haciendo doble Clic sobre el control, luego, se abrirá una ventana denominada Property Inspector, aquí, cambiaremos las propiedades que deseemos, en este caso el texto se manipula cambiando el contenido del cuadro String.

Repetimos el mismo proceso para todos los botones, y el texto estático. Para el menú emergente, en el Property Ispector relacionado abrimos el cuadro que ofrece la opción String y lo completamos de la forma presentada en la siguiente figura.

Franco M. Rosa Alagón

3

[email protected]

CAPIII. INTERFACES GRAFICAS EN MATLAB

BIOTRONIK-2011

Presionamos OK, y tenemos el diseño completo cuya apariencia figura a continuación, guardamos el diseño con el nombre E y lo ejecutamos presionando ahora el GUI se vera así:

Diseño terminado

Interfaz en ejecución

Franco M. Rosa Alagón

4

[email protected]

CAPIII. INTERFACES GRAFICAS EN MATLAB

BIOTRONIK-2011

III.3.2 Programación de GUI Al guardar nuestro GUI en la sección anterior se crearon 2 archivos: un a fig-file, Ejemplo_III_3.fig, que contiene nuestro diseño, y un M-file, Ejemplo_III_3.m, que consiste en un conjunto de funciones. A continuación realizaremos las instrucciones necesarias para que nuestro GUI funcione. Añadiremos el código necesario para crear las funciones: picos, membrana y sene, para lo cual abrimos en el editor el archivo Ejemplo_III_3.m, luego, haremos clic en el icono y elegimos Ejemplo_III_3_OpeningFcn, el cursor se dirigirá a la función de apertura (código que se ejecuta inmediatamente después de abierto el GUI), luego crearemos los datos con el siguiente codigo: % Creacion de datos a graficar. handles.picos=peaks(35); handles.membrana=membrane; [x,y] = meshgrid(-8:.5:8); r = sqrt(x.^2+y.^2) + eps; sene = sin(r)./r; handles.sene = sene; % Confifurar los datos actuales a graficar handles.actual_dato = handles.picos; surf(handles.actual_dato)

Ahora ejecutamos el GUI y tendemos:

Aun falta programar la acción de los botones y la del menú emergente para lo cual, invocaremos al código relacionado con el control deseado así:

Franco M. Rosa Alagón

5

[email protected]

CAPIII. INTERFACES GRAFICAS EN MATLAB

BIOTRONIK-2011

Ahora en la dirección en la que se ubique el cursor pondremos el siguiente código: % Determinar el conjunto de datos seleccionados. str = get(hObject, 'String'); val = get(hObject,'Value'); % Cambiar datos dependiendo de la selecion. switch str{val}; case 'Picos' % El usuario selecciono Picos. handles.actual_dato = handles.picos; case 'Membrana' % El usuario selecciono Membrana. handles.actual_dato = handles.membrana; case 'Sene' % El usuario selecciono Sene. handles.actual_dato = handles.sene; end % Guardar los cambios en la estructura. guidata(hObject,handles)

Notemos que el código lee la selección del menú, luego mediante el comando switch elige que dato utilizar, luego, para que el dato actualmente escogido sea manipulado por el resto de controles del GUI es necesario guardar los cambios de estructura, eso se realiza mediante: % Guardar los cambios en la estructura. guidata(hObject,handles)

Realizamos el mismo procedimiento para incluir código en cada botón y pondremos las siguientes instrucciones como corresponda:

En el botón Superficie: % Mostar el grafico de la malla formada por el dato selecionado. mesh(handles.actual_dato);

En el botón Malla: % Mostar el grafico de la malla formada por el dato selecionado. mesh(handles.actual_dato);

En el botón Contorno: % Mostrar el grafico del contorno del dato selecionado. contour(handles.actual_dato);

Franco M. Rosa Alagón

6

[email protected]

CAPIII. INTERFACES GRAFICAS EN MATLAB

BIOTRONIK-2011

Finalmente guardamos los cambios realizados y ejecutamos el GUI.

Franco M. Rosa Alagón

7

[email protected]

CAPIII. INTERFACES GRAFICAS EN MATLAB

BIOTRONIK-2011

Guía rápida de GUI. Creación de datos y rangos cuando la GUI se ejecuta

function MiGUI_OpeningFcn(hObject, eventdata, handles, varargin) % Instrucciones que se ejecutan al abrir la GUI. t=0:0.1:2*pi; Senot=sin(t); Cost=cos(t); Tant=tan(t); handles.t = t; handles.Senot=Senot; handles.Cost=Cost; handles.Tant=Tant; %Funcion Inicial handles.FuncionTrigo = Senot; % Choose default command line output for MiGUI handles.output = hObject; % Update handles structure guidata(hObject, handles);

PushButton

function pushbutton1_Callback(hObject, eventdata, handles) % Instrucciones que se ejecutan al presionar el boton1 plot(handles.t,handles.FuncionTrigo);

Franco M. Rosa Alagón

8

[email protected]

CAPIII. INTERFACES GRAFICAS EN MATLAB

BIOTRONIK-2011

PopUpMenu

str = get(hObject, 'String'); val = get(hObject,'Value'); % Cambiar datos dependiendo de la selecion. switch str{val}; case 'Seno(t)' % El usuario selecciono Picos. handles.FuncionTrigo = handles.Senot; case 'Cos(t)' % El usuario selecciono Membrana. handles.FuncionTrigo = handles.Cost; case 'Tan(t)' % El usuario selecciono Sene. handles.FuncionTrigo = handles.Tant; end % Guardar los cambios en la estructura. guidata(hObject,handles)

Axes

Esta herramienta nos permite ajustar el área donde se visualizara nuestro dato sin necesidad de ubicarla “manualmente” con el comando subplot

Franco M. Rosa Alagón

9

[email protected]

CAPIII. INTERFACES GRAFICAS EN MATLAB

BIOTRONIK-2011

Static Text

set(handles.text1, 'String', 'Seno(t)');

Edit Text

function edit1_Callback(hObject, eventdata, handles) Voltage = str2double(get(hObject, 'String')); if isnan(density) set(hObject, 'String', 0); errordlg('La entrada debe ser un numero','Error'); end % Save the new density value handles.Voltage = Voltage; guidata(hObject,handles)

Representación de números en Static Text Pot = handles.Voltage * handles.Resistencia; set(handles.Resultado, 'String', Pot);

Franco M. Rosa Alagón

10

[email protected]

Get in touch

Social

© Copyright 2013 - 2024 MYDOKUMENT.COM - All rights reserved.