Browse button in GUI in Matlab

46 visualizaciones (últimos 30 días)
saharsahar
saharsahar el 6 de Feb. de 2012
Comentada: Image Analyst el 13 de En. de 2022
Dear All,
I am newby in Matlab GUI and I am designing a GUI with matlab which gets some directory from "browse pushbutton" , shows the directory in the "answer Edit text box" and after clicking "Load pushbutton", it should sende the value in the text box to main .m file. Also it should wait until the user browse at least something. what I did is in push buttond call back :
[FileName,FilePath]=uigetfile();
ExPath = [FilePath FileName];
set(handles.answer_edit,'String',ExPath);
guidata(hObject, handles);
So I am able to see the directory in "answer edit textbox". But My problem is in Load pushbutton. How I have to pass the results to another .mfile.
Also how I can control that the program should wait until user browse at least something in Edit textbox.
Any help is highly apprecietd.
  2 comentarios
Darshil Pragneshbhai Trivedi
Darshil Pragneshbhai Trivedi el 13 de En. de 2022
Hello,
i am a new in this field, and still trying to learn as much as i can, i am working on the type of same thing but in Matlab App Designer, and i have to browse excel file with '.csv' extension, and the file i chose should be written in the editbox, and when i push the load, my GUI should take the data. after then i have to set it as a property so ican connect it with the other callbacks, but how i don't know, if You can help me out with it, it would be a great help from your side.
Image Analyst
Image Analyst el 13 de En. de 2022
@Darshil Pragneshbhai Trivedi, attach your .mlapp file in a new question (not here).

Iniciar sesión para comentar.

Respuesta aceptada

Image Analyst
Image Analyst el 7 de Feb. de 2012
You need to delete the handle of the GUI to cause the output function to run and send control back to the calling program. Perhaps this codce will help. I have a button, called btnOK, and a GUI called figMoveMask. When I click OK this code executes and then calls the outputfcn and then returns to the main calling routine with output arguments in varargout, like you did.
%--------------------------------------------------------------------
% --- Executes on button press in btnOK.
% MoveMask exits and control returns to the calling program.
function btnOK_Callback(hObject, eventdata, handles)
% hObject handle to btnOK (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
global maskVerticesXCoords;
global maskVerticesYCoords;
% Put the temp variables into our master global variable.
[newX, newY] = CalculateNewCoordinates(handles);
maskVerticesXCoords = newX;
maskVerticesYCoords = newY;
uiresume(handles.figMoveMask);
delete(handles.figMoveMask);
return; % to calling program.

Más respuestas (5)

Image Analyst
Image Analyst el 6 de Feb. de 2012
You could try a nice framework for doing all that. MAGIC http://www.mathworks.com/matlabcentral/fileexchange/24224
This GUI will help the novice user get up to speed very quickly on using GUI-based applications. Everything is laid out in a very simple Step 1, Step 2, Step 3, etc. layout. It is a very good starting point for a typical image analysis application. This application uses GUIDE to do the user interface design, and has most of the basic controls such as buttons, listboxes, checkboxes, radio buttons, scrollbars, etc. It allows the user to select a folder of images,................
Anyway, you could write the stuff out to a .mat file for your other GUI to read in, or check the FAQ: http://matlab.wikia.com/wiki/FAQ#How_can_I_share_data_between_callback_functions_in_my_GUI.3F

saharsahar
saharsahar el 6 de Feb. de 2012
Thanks fo the information. but lets summerize my question. Since I am sending back the results in xxx_OutputFcn as follows:
s=get(handles.answer_edit,'String');
varargout{1} = s;
Then what I have to write in the"Load pushbutton". Do I need to write anything?
Thanks

Walter Roberson
Walter Roberson el 7 de Feb. de 2012
Start with the Load uicontrol 'Enable' property set 'off', and have your Browse callback set the Load button's Enable to 'on' when it detects valid input. Watch out for the user canceling the uigetfile()
In the Load callback,
get(handles.answer_edit,'String')
and do whatever is appropriate with it.

saharsahar
saharsahar el 7 de Feb. de 2012
Thanks for the sample code. I tried However still I am getting error. here is the codes which I have written.
in Opening Function:
function XXXAlgorithm_OpeningFcn(hObject, eventdata, handles, varargin)
handles.output = hObject;
guidata(hObject, handles);
uiwait(handles.figure1);
in Output Function
function varargout = XXXAlgorithm_OutputFcn(hObject, eventdata, handles)
s=get(handles.load_button,'String');
varargout{1} = s;
In Browse Button:
function browse_button_Callback(hObject, eventdata, handles)
[FileName,FilePath]=uigetfile();
ExPath = [FilePath FileName];
set(handles.answer_edit,'String',ExPath);
guidata(hObject, handles);
in edit Text Button
function answer_edit_Callback(hObject, eventdata, handles)
answer_edit as a double
FilePath=get(handles,editFilePath,'String');
set(handles.editFilePath,'String',FilePath);
in Load Button:
function load_button_Callback(hObject, eventdata, handles)
t = get(handles.answer_edit,'String');
uiresume(XXXAlgorithm);
delete(XXXAlgorithm);
return;
Thanks if you let me know which part Im doing mistake. Thanks
  1 comentario
Image Analyst
Image Analyst el 7 de Feb. de 2012
In the load button, try
delete(handles.XXXAlgorithm);

Iniciar sesión para comentar.


Ka Mirul
Ka Mirul el 20 de Nov. de 2017
Editada: Walter Roberson el 28 de En. de 2018
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

Categorías

Más información sobre Migrate GUIDE Apps en Help Center y File Exchange.

Etiquetas

Community Treasure Hunt

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

Start Hunting!

Translated by