Ошибка при сохранении как типа с использованием uiputfile - Matlab - PullRequest
1 голос
/ 05 августа 2020

В конструкторе приложений у меня есть две кнопки: одна для объявления рабочей папки:

function setSaveLocationButtonPushed(app, event)
     app.path = uigetdir()             
end

Вторая для сохранения изображения

function saveButtonPushed(app, event)
       pathSave = app.path;  
       [file, pathSave] = uiputfile([pathSave,'*.jpg']);
…
            
        end

Почему я попадаю в сохранение как введите также app.path? (как показано на изображении)

матл

1 Ответ

2 голосов
/ 05 августа 2020

Ваш код [pathSave,'*.jpg'] объединяет путь и фильтр, а затем передает результат в качестве единственного аргумента функции uiputfile. Этот аргумент сообщает функции, какой фильтр файлов использовать.

Вместо сохранения выбранного каталога заставьте его изменить текущий каталог. Пользовательский интерфейс выбора файла всегда открывается в текущем каталоге.

function setSaveLocationButtonPushed(app, event)
   p = uigetdir;
   cd(p)         
end

function saveButtonPushed(app, event)  
   [file, pathSave] = uiputfile('*.jpg');
   …       
end

Если вы не хотите изменять текущий каталог для всего приложения, вы можете изменить его непосредственно перед вызовом функции uiputfile и потом измените его обратно:

function saveButtonPushed(app, event)
   p = cd(app.path);
   [file, pathSave] = uiputfile('*.jpg');
   cd(p);
   …       
end
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...