MATLAB Answers

How can I get the GUI to browse for a specific file?

175 views (last 30 days)
Sue
Sue on 4 Jul 2011
Answered: Ka Mirul on 20 Nov 2017
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 Comments

Sign in to comment.

Accepted Answer

Gerd
Gerd on 4 Jul 2011
Hi Sue,
you can use uigetfile to open a dialog where the user can choose the file.
Gerd

  11 Comments

Show 8 older comments
Gerd
Gerd on 4 Jul 2011
OK,
take a static textbox and Name("Tag")it txt_directory.
Take a push button and Name("Tag") it cmd_getDir.
Now go to the cmd_getdir_callback function and tell the button what to do when it is clicked.
directoy = uigetdir;
% Now you can set the "string" property of the static textbox.
set(handles.txt_directory,'String',directory);
Sue
Sue on 4 Jul 2011
Erm I have tried this but it only puts the string "set(handles.txt_directory,'String',directory);" into the text box - it doesn't actually change into the pathdirectory of the chosen file once the user makes their choice.
Gerd
Gerd on 4 Jul 2011
Sue can you sent me the .fig file and the .m file using the contact. I think we are talking about different stuff :-)

Sign in to comment.

More Answers (3)

Narciso Neves
Narciso Neves on 31 Jul 2014
Sue, there is a typo on directoy = uigetdir; Is missing an "r" in "directory" ... that's why it was failing. :D

  0 Comments

Sign in to comment.


Jaime López
Jaime López on 8 Mar 2017
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 Comments

Sign in to comment.


Ka Mirul
Ka Mirul on 20 Nov 2017
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 Comments

Sign in to comment.

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by