1

我通过使用以下运行良好的代码在不使用 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]);

我的问题是它的回调函数,当我按下它的任何选项时,我无法为其分配任何函数以执行任何操作。

我会很感激有人帮助我。

4

1 回答 1

1

我发现了这个问题,因为我基本上遇到了同样的问题。即使这是(在撰写此答案时)超过 1 年,我也会发布我的解决方案,希望它对后代有所帮助。

您可以获得Value弹出菜单属性的值:这基本上是所选选项在填充弹出菜单的可能选项数组中的位置。

编写代码比用语言解释更容易,因此下面是示例代码。只需将此代码复制/粘贴到带有.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
于 2014-07-22T15:12:33.710 回答