Matlab App Designer。使用DropDown打开和关闭面板

时间:2018-04-16 20:20:27

标签: matlab user-interface drop-down-menu matlab-figure

我是matlab的新手,我想知道是否有人可以解决问题。 我正在使用Matlab R2017B和App Designer。

我的问题: 我在GUI中有一个默认设置为不可见的面板。 我还有一个下拉菜单,其中存储了一些值:

“请选择” “小组1” “小组2” “小组3” 等...

当我从下拉列表中选择面板1时,我希望该特定面板变为可见。即回调:

function DropDownValueChanged(app, event) app.Panel1.Visible = 'on';

这一切都很好并且有效,但我似乎无法让下一部分正确。 当我回到下拉列表并选择“面板2”时,我希望程序关闭当前面板并通过从下拉列表中选择该值来打开名为“面板2”的面板。

使用可见性来定义此错误是错误的吗? 如何以更直观的方式将下拉值连接到相应的面板? 我一直在搞乱各种各样的教程,但仍然无法让它工作

提前致谢

1 个答案:

答案 0 :(得分:0)

您需要读取下拉列表的值并使用它来评估应显示哪个面板。最初隐藏所有面板,然后只需使感兴趣的面板可见。我的DropdownValueChanged函数看起来像这样。

    % Value changed function: DropDown
    function DropDownValueChanged(app, event)
        value = app.DropDown.Value;
        % Hide all the panels
        app.Panel1.Visible = 'off';
        app.Panel2.Visible = 'off';
        app.Panel3.Visible = 'off';

        %If Panel 1 is selected, show panel 1
        if strcmp(value,'Panel 1')
            app.Panel1.Visible = 'on';
        elseif strcmp(value,'Panel 2')
            app.Panel2.Visible = 'on';
        elseif strcmp(value,'Panel 3')
            app.Panel3.Visible = 'on';
        end
    end

我在startupFcn中也有以下内容隐藏除第一个面板以外的所有内容。

    % Code that executes after component creation
    function startupFcn(app)
        app.Panel1.Visible = 'on';
        app.Panel2.Visible = 'off';
        app.Panel3.Visible = 'off';
    end