Updating GUI Popup Menu in Seperate Callback Function

2 views (last 30 days)
Hi There,
I am writing a basic programme that can output a number of different signals (sin, sawtooth, etc) and vary them using mutliple sliders. I cannot get the dropdown menu to update.
I am using 'updateAll', so that all sliders dropdowns, etc update the graph simultaneously when used.
Thanks
function popChoice_Callback(hObject, eventdata, handles)
contents = cellstr(get(hObject,'String'));
popChoice = contents(get(hObject,'Value'));
if (strcmp(popChoice,'Sine'))
popVal = 1;
elseif (strcmp(popChoice,'Square'))
popVal = 2;
elseif (strcmp(popChoice,'Sawtooth'))
popVal = 3;
elseif (strcmp(popChoice,'Triangular'))
popVal = 4;
end
assignin('base','popVal',popVal)
updateAll()
%%Some other unrelated coder (sliders, etc) is between these functions
function updateAll
f=round(getappdata(0,'f'));
S_rate=round(getappdata(0,'S_rate'));
t=round(getappdata(0,'t'));
phi=round(getappdata(0,'phi'));
popVal = getappdata(0,'popVal');
if popVal == 1
Sin_Wave(f,phi,S_rate,t)
elseif popVal == 2
Square_Wave(f,phi,S_rate,t)
elseif popVal == 3
Sawtooth_Wave(f,phi,S_rate,t)
elseif popVal == 4
Triangle_Wave(f,phi,S_rate,t)
end

Accepted Answer

Ayush Bansal
Ayush Bansal on 29 Oct 2020
getappdata is used to retrieve data stored using the setappdata function.
setappdata stored data in a UI. Both these functions provide a convenient way to share data between callbacks or between separate UIs.
setappdata(0,...) sets the variable value in root not workspace.
getappdata(0,...) gets the variable value from root not workspace.
Use evalin to access data from different workspace.

More Answers (0)

Categories

Find more on App Building in Help Center and File Exchange

Products


Release

R2020b

Community Treasure Hunt

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

Start Hunting!