在Matlab中回调弹出菜单功能

时间:2013-06-17 00:35:48

标签: matlab function callback popupmenu

我使用以下代码生成了一个不使用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]);

我的问题是它的回调函数,当我按下任何一个选项时,我无法为其指定任何动作。

我很感激有人帮助我。

1 个答案:

答案 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