Приложение с интерактивным списком в GUIDE

Примечание

Окружение GUIDE будет удаляемо в следующем релизе. После удаления GUIDE существующие приложения GUIDE будут продолжать запускаться в MATLAB® но они не будут редактироваться в GUIDE.

Чтобы продолжить редактирование существующего приложения GUIDE, смотрите GUIDE Migration Strategies для получения информации о том, как помочь поддерживать совместимость приложения с будущими релизами MATLAB. Чтобы создать новые приложения в интерактивном режиме, вместо этого Разрабатывайте приложения с использованием App Designer.

В этом примере показано, как изучить и запустить предварительно созданное приложение GUIDE. Приложение содержит список, в котором отображаются файлы в определенной папке. При двойном клике элемента в списке MATLAB открывает элемент.

Откройте и запустите пример

Откройте приложение в GUIDE и нажмите Run Figure (зеленая кнопка воспроизведения), чтобы запустить его.

Также можно вызвать lbox2 функция в Командном окне с 'dir' аргумент пары "имя-значение". Аргумент пары "имя-значение" позволяет вам перечислять содержимое любой папки. Например, эта команда приводит список файлов в папке C :\в системе Windows ®:

lbox2('dir','C:\')

Примечание: Прежде чем вы сможете позвонить lbox2 в Командном окне необходимо сохранить файлы GUIDE в папке на пути MATLAB ®. Чтобы сохранить файлы, выберите Файл > Сохранить как в GUIDE.

Исследуйте размещение и код коллбэка

  1. В GUIDE нажмите кнопку Editor, чтобы просмотреть код.

  2. В верхней части окна Editor используйте кнопку Go To для перехода к функциям , описанным ниже.

lbox2_OpeningFcn

Функция обратного вызова lbox2_OpeningFcn выполняется непосредственно перед первым появлением списка в пользовательском интерфейсе. Следующие операторы определяют, задал ли пользователь аргумент пути к lbox2 функция.

if nargin == 3,
    initial_dir = pwd;
elseif nargin > 4
    if strcmpi(varargin{1},'dir')
        if exist(varargin{2},'dir')
            initial_dir = varargin{2};
        else
            errordlg('Input must be a valid directory','Input Argument Error!')
            return
        end
    else
        errordlg('Unrecognized input argument','Input Argument Error!');
        return;
    end
end
Если nargin==3, затем единственные входные параметры для lbox2_OpeningFcn являются hObject, eventdata, и handles. Поэтому пользователь не указал путь при вызове lbox2, поэтому в поле списка отображается содержимое текущей папки. Если nargin>4, затем varargin входной параметр содержит два дополнительных элемента (что предполагает, что пользователь задал путь). Таким образом, последующие if операторы проверяют, является ли путь допустимым.

listbox1_callback

Функция обратного вызова listbox1_callback выполняется при клике элемента окна списка. Этот оператор, около начала функции, возвращается true каждый раз, когда пользователь дважды кликает элемент в списке:

if strcmp(get(handles.figure1,'SelectionType'),'open')
Если это условие true, затем listbox1_callback определяет, какой элемент списка выбран пользователем:
index_selected = get(handles.listbox1,'Value');
file_list = get(handles.listbox1,'String');
filename = file_list{index_selected};
Остальная часть кода в функции обратного вызова определяет, как открыть выбранный элемент, на основе того, является ли элемент папкой, файлом FIG или другим типом файла:
    if  handles.is_dir(handles.sorted_index(index_selected))
        cd (filename)
        load_listbox(pwd,handles)
    else
        [path,name,ext] = fileparts(filename);
        switch ext
            case '.fig'
                guide (filename)
            otherwise
                try
                    open(filename)
                catch ex
                    errordlg(...
                      ex.getReport('basic'),'File Type Error','modal')
                end
        end
    end

Похожие темы