如何在处理函数期间(而不是之后)禁用MatlabGUI元素

如何在处理函数期间(而不是之后)禁用MatlabGUI元素,matlab,user-interface,matlab-guide,Matlab,User Interface,Matlab Guide,这是我在这里的第一篇帖子,大家好 我的问题是关于MatlabGUI接口。在我的代码中,有一个来自按钮的函数回调,我想在处理这个回调的过程中禁用GUI中的每个可按下/滑动的元素。不幸的是,当我在回调开始时将这些元素的“enable”属性设置为“off”,然后在回调结束时将其设置为“on”时,属性没有改变。 我想我知道为什么会这样。可能是因为,如果回调更改了任何内容,它会在函数完成之后发生,并且在处理完成之前,它内部的每个更改都不会影响函数外部的任何元素。这就是为什么我没有看到所有这些元素都被禁用的

这是我在这里的第一篇帖子,大家好

我的问题是关于MatlabGUI接口。在我的代码中,有一个来自按钮的函数回调,我想在处理这个回调的过程中禁用GUI中的每个可按下/滑动的元素。不幸的是,当我在回调开始时将这些元素的“enable”属性设置为“off”,然后在回调结束时将其设置为“on”时,属性没有改变。 我想我知道为什么会这样。可能是因为,如果回调更改了任何内容,它会在函数完成之后发生,并且在处理完成之前,它内部的每个更改都不会影响函数外部的任何元素。这就是为什么我没有看到所有这些元素都被禁用的原因——因为在函数结束时,我将所有元素都设置为“开”,而这是唯一发生的事情。 关于这一点-在执行函数期间,是否有任何选项可以更改“enable”属性?代码如下所示:

function [] = mListLaunchButton_call(varargin)

    // Some global declarations
    global a phi launchBlanker
    global servoNumber servoZeroPosition servoDegreePerDegree servoDirection

    // Assigning a class
    Manual = varargin{3};

    // Enabling "Stop" button and disabling everything else

        set(Manual.listStopButton,'enable','on');
        set(Manual.listSaveButton,'enable','off');
        set(Manual.listDeleteButton,'enable','off');
        set(Manual.listClearButton,'enable','off');
        set(Manual.listLaunchButton,'enable','off');
        set(Manual.closeButton,'enable','off'); 

        for i = 1 : 5
            set(Manual.sliderDOF(i),'enable','off');
        end

        %%%%%%%%%%%%%%%%%%%% HERE FUNCTION DOES SOME STUFF %%%%%%%%%%%%%%%%

    // Disabling "Stop" button and enabling eveything else 

    set(Manual.listStopButton,'enable','off');
    set(Manual.listSaveButton,'enable','on');
    set(Manual.listDeleteButton,'enable','on');
    set(Manual.listClearButton,'enable','on');
    set(Manual.listLaunchButton,'enable','on');
    set(Manual.closeButton,'enable','on'); 

    for i = 1 : 5
        set(Manual.sliderDOF(i),'enable','on');
    end
在初次启用/禁用GUI控件之后,在以下行之前,尝试使用该命令:

%%%%%%%%%%%%%%%%%%%%这里函数做了一些事情%%%%%


这将导致MATLAB刷新排队的GUI事件,并在进入函数的核心部分之前更新屏幕。

我不确定到底是什么不起作用。抱歉,哈哈。ui控件在函数开始时是否正确禁用,或者它们似乎始终处于启用状态?如果您对“函数执行某些操作”的部分进行注释,会怎么样?控件是先禁用然后再启用的吗?谢谢您的回答,问题是在回调开始的过程之后GUI没有禁用。在评论“函数做了一些事情”之后,仍然是一样的。我想说的是,函数可能会在结束自身执行之后执行任何操作。所以,如果我在ex.中禁用按钮,并且在5秒钟后再次启用它,则该按钮将被启用,因为所有操作都发生在函数内部。啊,我不知道怎么说。。。函数只执行变量或实例的最后一次更改?我想这就是重点。