Need help with Checkbox GUI

3 visualizzazioni (ultimi 30 giorni)
adi kul
adi kul il 13 Giu 2016
Commentato: adi kul il 13 Giu 2016
Hello All,
I am planning to have a checkbox in my GUI which will give user a flexibility over turning "on" and "off" the figures popups.
What I want is, by default the checkbox should be checked where the plots will popup every time the script runs over the loop. But by checking it OFF, the figure visibility will be off so user may minimize the GUI and do other stuff without getting disturbed.
I am unable to add the logic. Can anyone help me with a quick code? The script runs in a different call back function.
  1 Commento
adi kul
adi kul il 13 Giu 2016
This is what I tried:
function checkbox1_Callback(hObject, eventdata, handles)
% hObject handle to checkbox1 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
% Hint: get(hObject,'Value') returns toggle state of checkbox1
S5.checkboxStatus = get(h.checkbox1,'Value');
set(handles.checkbox1,'UserData', S5);
and in my figures:
if S5.checkboxStatus==1
figure(1);
else
figure ('Visible','off');
But this giving me error:
Attempt to reference field of non-structure array.

Accedi per commentare.

Risposte (1)

Walter Roberson
Walter Roberson il 13 Giu 2016
show_the_figure = get(handles.checkbox, 'value') == 1;
if show_the_figure
set(AppropriateFigurehandle, 'visible', 'on')
else
set(AppropriateFigurehandle, 'visible', 'off')
end
  3 Commenti
Walter Roberson
Walter Roberson il 13 Giu 2016
You stored S5 in the UserData of handles.checkbox1 and to use it you are going to need to retrieve it from there,
S5 = get(handles.checkbox1, 'UserData');
However, for this to work properly you are going to need to know that you ran the checkbox callback at least once before the pushbutton was active, or that you initialized the UserData of handles.checkbox1 before the pushbutton is active, or you use
if isempty(S5) || S5.checkboxStatus==1
set(1, 'Visible', 'on');
else
set(1, 'Visible', 'off');
end
"And I don't have different handles for figures. They are the part of pushbutton."
When you set the figure visbility off so that you do not show the plot, that will take the checkbox and all other controls with it, making them all invisible, because the are part of the figure as well. How are you going to get them back?
adi kul
adi kul il 13 Giu 2016
actually I am saving the figures to a directory. So I don't have any handles for figures.

Accedi per commentare.

Categorie

Scopri di più su Interactive Control and Callbacks in Help Center e File Exchange

Tag

Community Treasure Hunt

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

Start Hunting!

Translated by