我使用以下代码生成了一个不使用GUIDE的弹出菜单:
figure;
row=4;
String =sprintf('Video%d#', 1:row);
String(end) = [];
CString=regexp(String , '#' , 'split');
uicontrol('style','popupmenu' , ...
'String' , CString ,...
'Position' , [200,400,12,24]);
我的问题是它的回调函数,当我按下任何一个选项时,我无法为其指定任何动作。
我很感激有人帮助我。
答案 0 :(得分:1)
我发现了这个问题,因为我基本上遇到了同样的问题。即使这是(在写这个答案的时候)超过1岁,我发布我的解决方案,希望它能帮助后人。
您可以获取弹出菜单的属性Value
的值:这基本上是填充弹出菜单的可能选项数组中所选选项的位置。 / p>
编码比用文字解释更容易,因此下面是一个示例代码。只需将此代码复制/粘贴到扩展名为.m
的纯文本文件中,然后在Matlab中运行即可。
function popupexample
% create an empty figure
h_fig = figure;
% create a popup menu
h_popup = uicontrol(...
'Style','popupmenu',...
'String',{'1st choice','2nd choice','3rd choiche','...and so on'},...
'Callback',@mypopup_fcn,...
'Units','normalized',...
'Position',[0 0.5 1 0.5]);
% create a textbox
h_textbox = uicontrol(...
'Style','edit',...
'Units','normalized',...
'Position',[0 0 1 0.5]);
% the popup callback
function mypopup_fcn(hObject,eventdata)
my_selection = get(hObject,'Value');
set(h_textbox,'String',my_selection)
end
end