How do I replace the sting value in one popup based on the value selected in another popup?
1 次查看(过去 30 天)
显示 更早的评论
popupMenu = uicontrol(topPanel,'Style','popupmenu',...
'String',solString,...
'Units','normalized',...
'Value',1,'Position',[.1 .25 .2 .5],...
'Callback',@popupmenuCallBack);
hourpopupMenu = uicontrol(topPanel,'Style','popupmenu',...
'String',hourString,...
'Units','normalized',...
'Value',1,'Position',[.5 .25 .2 .5],...
'Callback',@hourpopupmenuCallBack);
function hourpopupmenuCallBack(hObject, eventdata, handles)
global sol_index_selected
global hour_index_selected
global solution_index
global allData
hour_index_selected = get(hObject,'Value');
% to generate new string
newSolString = [];
for n=1:size(allData.all_data(hour_index_selected).solutions,1)
newSolString = [newSolString string("Solution "+n)];
end
% NEED TO REPLACE STRING OF "popupmenu" WITH "newSolString"
end
% callback function for dropdown/popup menu in the top panel
function popupmenuCallBack(hObject, eventdata, handles)
global sol_index_selected
sol_index_selected = get(hObject,'Value');
end
0 个评论
采纳的回答
Walter Roberson
2017-6-12
Change
popupMenu = uicontrol(topPanel,'Style','popupmenu',...
'String',solString,...
'Units','normalized',...
'Value',1,'Position',[.1 .25 .2 .5],...
'Callback',@popupmenuCallBack);
to
popupMenu = uicontrol(topPanel,'Style','popupmenu',...
'String',solString,...
'Units','normalized',...
'Value',1,'Position',[.1 .25 .2 .5],...
'Callback',@popupmenuCallBack, ...
'tag', 'Pup');
Replace
newSolString = [];
for n=1:size(allData.all_data(hour_index_selected).solutions,1)
newSolString = [newSolString string("Solution "+n)];
end
with
newSolString = 'Solution " + (1:size(allData.all_data(hour_index_selected).solutions,1));
popupmenu = findobj(ancestor(hObject, 'figure'), 'tag', 'Pup');
popupmenu.String = newSolString;
更多回答(0 个)
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Migrate GUIDE Apps 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!