How can I get the GUI to browse for a specific file?
16 次查看(过去 30 天)
显示 更早的评论
Hi. I am new to this Matlab GUI and would love your help.
I have an m-file that runs perfectly but wish to put in into a GUI (using GUIDE) to make it more user-friendly.
In my m-file, I manually insert the pathname for the directory in which the necessary jpeg images are to be found. How do I execute this in the GUI? How can I get the user to be able to select the path/file in which the GUI can extract and use the JPEGs within the selected file? I think I need some kind of "browse the user's computer directory" function but am not sure how to achieve this? And how do I then put this path into the m-file?
Any help and advice would be greatly appreciated.
Sue x
0 个评论
采纳的回答
更多回答(3 个)
Ka Mirul
2017-11-20
I found a video that help me, it is about creating GUI to browse an image and display the image and its name. It should help you : https://youtu.be/7EmFShs5y9I
0 个评论
Narciso Neves
2014-7-31
Sue, there is a typo on directoy = uigetdir; Is missing an "r" in "directory" ... that's why it was failing. :D
0 个评论
Jaime López
2017-3-8
This is a simplistic version of what I usually add:
I use two handles for the path: InitialPath: the path where I execute the function, you need to get back there in order to keep on executing it. CurrentPath: the path where the user is currently searching.
I create a listbox object for the user to browse in, where I print the current directory list:
function listbox_Ruta_Callback(hObject, eventdata, handles)
option = hObject.Value;
directories = hObject.String;
cd(handles.CurrentPath);
if strcmp(directories(option,1:2),'. ') || strcmp(directories(option,1:2),'..') % two first options are to go to the higher directory
cd('..');
handles.CurrentPath= pwd;
else
if isempty(strfind(directories(option,:),'.')) %If it is a folder, get inside it (maybe better with isdir() function, but I haven't tried)
cd(directories(option,:));
handles.CurrentPath= pwd;
hObject.Value = 1; % You have to reset the value to prevent some errors.
else
%If it is a file, do wahtever you want with it, or pass the information with a handler to another function
handles.CurrentPath= pwd;
end
end
hObject.String = ls;
cd(handles.InitialPath);
% Update modified information
guidata(hObject, handles);
My coments were originally in Spanish, so sorry if I left anything untranslated or poorly done.
0 个评论
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 File Operations 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!