【问题标题】:How to gray out a panel in MATLAB GUI如何在 MATLAB GUI 中将面板变灰
【发布时间】:2016-07-29 11:28:01
【问题描述】:

我为机械臂测试创建了一个matlab GUI。

在程序执行之前,程序会等待一些配置,例如第一个面板用于 conf 文件输入浏览和结果文件浏览设置,第二个面板用于输入机器人 ip 地址等。

我有 5 个这样的面板,我想将面板变灰并在单击下一步按钮后一一打开。

我试过了:

set(hObject,'Enable','off');
drawnow;

但是这些解决方案不起作用,因为 ENABLE 参数不适用于面板(名称“Enable”不是类“uipanel”实例的可访问属性。)。

我找不到面板的任何解决方案。你有什么建议吗? (点击上一个面板上的 NEXT 按钮后,下一个面板将变暗)

【问题讨论】:

    标签: matlab user-interface


    【解决方案1】:

    尝试设置uipanel children Enable 属性:

    set(get(hObject,'Children'),'Enable','off')
    

    这将设置所有子对象的启用属性。

    更完整的方法是扩展它以检查哪些子项是 uicontrols:

    % extract all children
    children = get(hObject,'Children');
    % only set children which are uicontrols:
    set(children(strcmpi ( get (children,'Type'),'UIControl')),'enable','off')
    

    【讨论】:

    • 它适用于初始打开。如何以这种方式配置代码,例如,如果我在 2. 面板,则 1. 和 3. 面板将变暗,并且每个面板都有下一个和上一个按钮。如何将按钮下的灰色推荐发送到面板?
    • 您需要链接到每个面板(以及相应的子面板)的相应句柄。它们可能会存储在您的句柄结构中
    猜你喜欢
    • 1970-01-01
    • 2020-09-20
    • 1970-01-01
    • 2016-09-18
    • 1970-01-01
    • 1970-01-01
    • 2013-03-30
    • 2012-12-03
    • 1970-01-01
    相关资源
    最近更新 更多