MATLAB Answers

Getting the default value from checkbox in multile GUI's

5 views (last 30 days)
Ciuban Sebastian
Ciuban Sebastian on 14 Mar 2015
Commented: John on 15 Sep 2015
Hello guys,
I have a problem in "passing" the default value of a checbox between 2 GUI's. I will upload the image for an easier understanding.
When I click on "Modelare Erori" the gui_modelare appear with the 3 checboxes. How I can obtain the value "0" of them without interacting with the gui_modelare..I mean, the "0" state is the default.At the moment if I want to obtain 0 from those 3 checkboxes, I have to check and un-check them in order to work...
How I store the data in gui_modelare:
function ionosfera_Callback(hObject, eventdata, handles)
if (get(hObject,'Value')==get(hObject,'Max'))
guidata(hObject, handles);
and How I acces the data from checkbox(ionosfera) in the 2nd GUI- gui_procesare:
function calculeaza_Callback(hObject, eventdata, handles)
Like I said, if I don't interact with gui_modelare (to check and uncheck) I can't get the value "0". In this case my flag_model_iono is empty.
How can I manage this problem?


Sign in to comment.

Accepted Answer

Geoff Hayes
Geoff Hayes on 14 Mar 2015
Ciuban - there are a couple ways of doing this. See Sharing between multiple GUIs or how to pass data between guis for examples on how to do this.
In the second link, if the HandleVisibility property for both GUIs are set to on, then you can use findobj function to find the other GUI using its tag. So, in your second GUI (or even from the Command Window), you may look for the first GUI as
hGui = findobj('Type','figure','Tag','GUI1');
where 'GUI1' is the value of the Tag property of the first GUI (typically, the default is figure1).
if ~isempty(hGui)
% GUI has been found
% get control handles for this GUI
handlesGui1 = guidata(hGui);
% now read the data from the checkbox
checkValue = get(handlesGui1.ionosfera,'Value');
% etc.
In the above, we access the checkbox of the other GUI directly and use get to obtain the check value (0 or 1).
NOTE that in your code, you overwrite the handle of the control with the value of zero or one as
This is incorrect! By doing so, you have lost the handle to the checkbox which will prevent other callbacks (or GUIs) from accessing the state of this control. Since we can use the control handle to access any of its properties, your code in the ionosfera_Callback is unnecessary and should be removed.
Try the above and see what happens!


Show 2 older comments
Geoff Hayes
Geoff Hayes on 14 Mar 2015
Use the close function by passing the handle to the GUI. (You will need to do this for all three on the right of the main one.) You would do this in the CloseRequestFcn of your main GUI (you may need to add this callback to your main GUI through the GUIDE interface).
John on 14 Sep 2015
Dear Geoff,
I am facing a similar Problem as above. I want to get the values of checkboxes in a GUI named 'Try1_controls' and tagged with 'try1controls_'.
First of all. I understood this the following way:
You dont necessarily need setappdata and getappdata because one can have direct access on a graphical object via its handle,too? is it correct? This would be so much easier than working with setappdata and getappdata.
The first problem that arises is, that when i implement
hGui = findobj('Tag','try1controls_')
in my mainGUI , it produces
hGui =
Empty matrix: 0-by-1
Why?? handle visability is 'on' for every GUI and the tag is correct, too. I have no Problems finding my mainGui tagged 'try1' but all the other Guis that are descendants of the mainGui are not found with the findobj function.
What do i do wrong? These handles still confuse me somehow and dont work as i want it to:(
I am glad for help!
Best regards, John
John on 15 Sep 2015
i got the solution... wanted to find the Object although it was already closed! i thought objects were accessable independent of the fact whether they are open or not. so this was wrong!:)

Sign in to comment.

More Answers (0)

Sign in to answer this question.