jueves, 5 de septiembre de 2013

Ejemplo de GUI sin utilizar GUIDE (Programmatic GUI)


Para construir una GUI sin utilizar el entorno de desarrollo integrado de MATLAB (GUIDE) haremos uso del comando "uicontrol" el cual construye  elementos de una interfaz gráfica simplemente especificando algunas características básicas.

Este ejemplo, muy sencillo, consta de un "edit text" en el cual se insertará cierto contenido, un "static text" en el cual se mostrará el contenido insertado anteriormente y un "pushbutton" que ejecutará la acción.

Enseguida os adjunto el código completo del ejemplo en cuestión:

function Simple_ProgGUI

f=figure('Visible','on','MenuBar','none','resize','off','NumberTitle','off',...
    'Name','Ejemplo 1','position',[300,400,150,150]);       
entrada=uicontrol('style','edit','string','','position',[30 120 90 20]);
salida=uicontrol('style','text','string','','position',[30 70 90 20]);
Ver=uicontrol('style','pushbutton','string','Ver','Callback',@ver,...
    'position',[30 20 90 20]);

    function ver(hObject,evendata)
        texto=get(entrada,'string');
        set(salida,'string',texto);
    end
end

Primeramente creamos una nueva figura en la cual se añadirán todos los elementos que componen la GUI, definimos algunas propiedades cómo el nombre de la figura, la visibilidad y además con la propiedad 'position' estamos definiendo la posición en la pantalla y el tamaño de la GUI (pixeles como unidad de medida por default).

Con "uicontrol" añadimos los elementos de la GUI, indicando con la propiedad 'style' el tipo de elemento que utilizaremos. Es necesario hacer mención que la posición de los uicontrols se definen con respecto a la figura a la cual pertenecen.

El 'callback' del pushbutton se definirá con una sub-función llamada "ver" y en la cual se escribe el código que se ejecutará cuando presionemos el botón. Esta sub-función simplemente toma la propiedad 'string' del elemento "entrada" y posteriormente con set configura la propiedad 'string' de "salida" colocando cómo nuevo valor lo que se ha obtenido anteriormente.

La siguiente imagen reproduce la GUI en ejecución.




No hay comentarios.:

Publicar un comentario