2012-06-18 22 views
6

Quiero crear una GUI con pestañas en la que la primera pestaña es para leer la entrada, luego la entrada se muestra en la GUI. El usuario debería poder seleccionar los datos de la GUI y luego darlos como entrada a un algoritmo. Además, el usuario puede seleccionar parámetros para el algoritmo en otra pestaña. En la tercera pestaña, el usuario puede ver los trazados resultantes.¿Cómo creo una GUI con pestañas en MatLab?

¿Cómo creo una GUI con pestañas dentro de MatLab ya sea programáticamente o usando la GUÍA?

+2

http://stackoverflow.com/questions/9859739/create-tabs-in-a-matlab-gui –

Respuesta

10

Aquí está un ejemplo simple que utiliza UITAB función semi-documentado para crear pestañas:

function tabbedGUI() 
    %# create tabbed GUI 
    hFig = figure('Menubar','none'); 
    s = warning('off', 'MATLAB:uitabgroup:OldVersion'); 
    hTabGroup = uitabgroup('Parent',hFig); 
    warning(s); 
    hTabs(1) = uitab('Parent',hTabGroup, 'Title','Data'); 
    hTabs(2) = uitab('Parent',hTabGroup, 'Title','Params'); 
    hTabs(3) = uitab('Parent',hTabGroup, 'Title','Plot'); 
    set(hTabGroup, 'SelectedTab',hTabs(1)); 

    %# populate tabs with UI components 
    uicontrol('Style','pushbutton', 'String','Load data...', ... 
     'Parent',hTabs(1), 'Callback',@loadButtonCallback); 
    uicontrol('Style','popupmenu', 'String','r|g|b', ... 
     'Parent',hTabs(2), 'Callback',@popupCallback); 
    hAx = axes('Parent',hTabs(3)); 
    hLine = plot(NaN, NaN, 'Parent',hAx, 'Color','r'); 

    %# button callback 
    function loadButtonCallback(src,evt) 
     %# load data 
     [fName,pName] = uigetfile('*.mat', 'Load data'); 
     if pName == 0, return; end 
     data = load(fullfile(pName,fName), '-mat', 'X'); 

     %# plot 
     set(hLine, 'XData',data.X(:,1), 'YData',data.X(:,2)); 

     %# swithc to plot tab 
     set(hTabGroup, 'SelectedTab',hTabs(3)); 
     drawnow 
    end 

    %# drop-down menu callback 
    function popupCallback(src,evt) 
     %# update plot color 
     val = get(src,'Value'); 
     clr = {'r' 'g' 'b'}; 
     set(hLine, 'Color',clr{val}) 

     %# swithc to plot tab 
     set(hTabGroup, 'SelectedTab',hTabs(3)); 
     drawnow 
    end 
end 

tab1 tab2 tab3

+0

Hola Amro, muchas gracias me han ayudado mucho. –

+0

Esto fue excepcional. ¡Muchas gracias por brindar este ejemplo! –

0

También puede crear fichas de una interfaz gráfica de usuario creado GUÍA con la ayuda de una utilidad disponible desde Matlab File Exchange que escribí.

El uso es bastante simple:

  1. Crear un panel con el conjunto de la etiqueta de la lengüeta? dónde ? es cualquier letra o número (por ejemplo, TabA). Este panel principal debe dejarse vacío y determinar el tamaño y la ubicación del grupo de pestañas (uitabgroup).
  2. Cree paneles adicionales con un nombre de etiqueta que comience con el nombre del panel principal. Todos los demás controles deben agregarse a estos paneles.
  3. En la función de guía generado xxx_OpeningFcn agregar lo siguiente:

    handles.tabManager = TabManager (hObject);

La ubicación de los paneles adicionales que no es importante, pero es generalmente más fácil de editar la interfaz gráfica de usuario si se encuentran en la misma ubicación que el panel principal. Puede editar los paneles incluso si están superpuestos haciendo un ciclo a través de los paneles con el comando "Enviar al pasado" del menú emergente de la Guía.

Tab Group Place holderMain Tab Supplementary TabResulting GUI

Cuestiones relacionadas