动画正在进行时暂时禁用按钮?

时间:2014-08-03 21:10:29

标签: matlab matlab-guide

我是 MATLAB GUI 的新手。我用一些按钮制作了一个简单的GUI。我为每个按钮添加了一个动画。我想要做的是当动画正在进行时,应该禁用所有按钮直到它结束。我尝试使用if条件使用类似布尔的变量。我还尝试在动画之前更新句柄。但它们都没有奏效。

if handles.animation == 0
      handles.animation =1;
     %%function is called
end
handles.animation = 0;

以上是我使用的代码。我是否犯了一些逻辑错误?或者有更好的方法来做到这一点。

1 个答案:

答案 0 :(得分:1)

为了禁用按钮/某些uicontrol元素,您希望使用其“enable”属性,将其设置为on或off,如下所示:

set(handles.animation,'Enable','off');

然后,您可以使用 while 语句来控制GUI的流程。例如:

 while strcmp(get(handles.animation,'enable'),'on') % if pushbutton of interest is enabled, then disable others:

      set(handles.animation,'enable','off');
set(handles.pushbuttonX,'enable','off');
% And so on...
     %%function is called
end

等等。

更优雅的方法是使用findobj函数查找任何元素,将其“enable”属性设置为“on”,然后将它们设置为“off”,这很好地展示了{{3} }

希望有所帮助!如果不够清楚,请询问!