exponenta event banner

Интерактивное приложение для списка в GUIDE

Примечание

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

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

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

Открыть и выполнить пример

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

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

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

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

Проверка макета и кода обратного вызова

  1. В GUIDE нажмите кнопку «Редактор» для просмотра кода.

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

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};
Остальная часть кода в этой функции обратного вызова определяет способ открытия выбранного элемента на основании того, является ли элемент папкой, файлом фиг.
    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

Связанные темы