Matlab GUI中弹出菜单值的设置
我有两个单选按钮(单选按钮1和单选按钮2)和GUI中的弹出菜单 我想: 1-当用户选择Radio_1时,弹出菜单中充满了106111 及 2-当用户选择Radio_2时,弹出菜单中充满了240268Matlab GUI中弹出菜单值的设置,matlab,Matlab,我有两个单选按钮(单选按钮1和单选按钮2)和GUI中的弹出菜单 我想: 1-当用户选择Radio_1时,弹出菜单中充满了106111 及 2-当用户选择Radio_2时,弹出菜单中充满了240268 E1=get(handles.Radio_1,'Value'); E2=get(handles.Radio_2,'Value'); if(E1==1) set(handels.popupmenu_Food_Sources,'String',{'106','111'}); end 但它不起作
E1=get(handles.Radio_1,'Value');
E2=get(handles.Radio_2,'Value');
if(E1==1)
set(handels.popupmenu_Food_Sources,'String',{'106','111'});
end
但它不起作用。您需要在
radiobutton
回调函数中设置弹出菜单的
(选中或取消选中radiobutton
时调用该函数)
下面是一个不使用指南的自一致代码:
function test
radio1 = uicontrol(...
'Style','radiobutton', 'String', '1',...
'Units','Normalized', 'Position', [0.4 0.5 0.2 0.1],...
'Callback', @radioCall);
pop = uicontrol(...
'Style','popupmenu', 'String', '0',...
'Units','Normalized', 'Position', [0.4 0.3 0.2 0.1]);
function radioCall(ev, sc)
if get(radio1, 'Value')
set (pop, 'String', {'1', '2', '3', '4'});
else
set (pop, 'String', {'0'});
end
end
end
我找到了答案:
function test_OpeningFcn(hObject, eventdata, handles, varargin)
str = get(handles.popupmenu1,'String');
set(handles.text1,'String',str(1));
set(handles.uipanel1,'SelectionChangeFcn',@uipanel1_SelectionChangeFcn);
handles.output = hObject;
guidata(hObject, handles);
function popupmenu1_Callback(hObject, eventdata, handles)
val = get(handles.popupmenu1,'Value');
str = get(handles.popupmenu1,'String');
if val ==1
set(handles.text1,'String',str(1));
elseif val == 2
set(handles.text1,'String',str(2));
elseif val == 3
set(handles.text1,'String',str(3));
elseif val == 4
set(handles.text1,'String',str(4));
elseif val == 5
set(handles.text1,'String',str(5));
end
guidata(hObject, handles);
function uipanel1_SelectionChangeFcn(hObject, eventdata)
handles=guidata(hObject);
switch get(eventdata.NewValue,'Tag')
case 'radiobutton1'
E1str{1}='1';E1str{2}='2';E1str{3}='3';E1str{4}='4';E1str{5}='5';
set(handles.popupmenu1,'String',E1str);
case 'radiobutton2'
E2str{1}='6';E2str{2}='7';E2str{3}='8';E2str{4}='9';E2str{5}='10';
set(handles.popupmenu1,'String',E2str);
end
str = get(handles.popupmenu1,'String');
set(handles.text1,'String',str(1));
我使用这段代码,但它没有用<代码>函数Radio_1_回调(hObject,eventdata,handles)E1str{1}='106';E1str{2}='111';E1str{3}='240';E1str{4}='268';E1str{5}='289';设置(handles.popupmenu\u Food\u Sources,'String',E1str)代码>尝试时会发生什么?你有错误吗?或者当您选中/取消选中单选按钮时什么也没有发生?当我选中/取消选中单选按钮时什么也没有发生这些代码也不起作用:功能测试\u OpeningFcn(hObject,eventdata,handles,varargin)set(handles.uipanel1,'SelectionChangeFcn',@uipanel1\u SelectionChangeFcn)代码>功能uipanel1\u选择ChangeFCN(hObject,eventdata)句柄=GUI数据(hObject);开关get(eventdata.Newvalue,'Tag')case'radiobutton1'E1str{1}='1';E1str{2}='2';E1str{3}='3';E1str{4}='4';E1str{5}='5';set(handles.popupmenu1、'String',E1str);案例“radiobutton2”…结束
我刚刚更新了答案,示例代码对我来说很好。恐怕您的代码的其他部分有问题。不幸的是,当您使用GUIDE时,其他人很难检查您的代码并发现问题。因此,如果问题仍然存在,请尽量简化您的GUI,并在您的问题中发布整个代码(请不要在评论中)。