2012-06-18 3 views
6

Я хочу создать графический интерфейс с вкладками, в котором первая вкладка предназначена для чтения ввода, затем вход отображается в графическом интерфейсе. Пользователь должен иметь возможность выбирать данные из графического интерфейса пользователя, а затем указываться в качестве входных данных для алгоритма. Также пользователь может выбрать параметры для algortihm на другой вкладке. На третьей вкладке пользователь может видеть полученные графики.Как создать графический интерфейс с вкладками в MatLab?

Как создать графический интерфейс с вкладками в MatLab программно или с помощью GUIDE?

+2

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

ответ

10

Вот простой пример использования полу-документированный функцию UITAB для создания закладки:

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

Здравствуйте Amro, спасибо, что помогли мне. –

+0

Это было выдающимся. Большое вам спасибо за предоставление этого примера! –

0

Вы также можете создавать вкладки из документации, созданного графического интерфейса с помощью утилита, доступная от Matlab File Exchange, которую я написал.

Использование довольно просто:

  1. Создать панель с тегом установлен на вкладке? где ? любая буква или номер (например, TabA). Эта основная панель должна быть пуста и определяет размер и расположение группы вкладок (uitabgroup).
  2. Создайте дополнительные панели с именем тега, которое начинается с имени главной панели. Все остальные элементы управления должны быть добавлены к этим панелям.
  3. В сгенерированной функции Guide xxx_OpeningFcn добавить следующее:

    handles.tabManager = TabManager (hObject);

Расположение дополнительных панелей не важен, но это, как правило, легче редактировать графический интерфейс пользователя, если они находятся в том же месте, что и основная панель. Вы можете редактировать панели, даже если они накладываются путем циклического перехода через панели с помощью команды «Отправлять назад» из всплывающего меню «Руководство».

Tab Group Place holderMain Tab Supplementary TabResulting GUI

Смежные вопросы