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

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

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

2 ответов


вот простой пример использования полу-документированной функции 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

tab1tab2tab3


вы также можете создавать вкладки из руководства, созданного GUI с помощью утилиты, доступной из Обмен Файлами Matlab это я написал.

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

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

    ручками.tabManager = TabManager( hObject );

расположение дополнительных панелей не важно, но обычно легче редактировать GUI, если они находятся в том же месте, что и основная панель. Вы можете редактировать панели, даже если они накладываются на велосипеде через панели с "отправить команда "назад"из всплывающего меню Guide.

Tab Group Place holderMain Tab Supplementary TabResulting GUI