我是 MATLAB GUI 的新手。我用一些按钮制作了一个简单的GUI。我为每个按钮添加了一个动画。我想要做的是当动画正在进行时,应该禁用所有按钮直到它结束。我尝试使用if条件使用类似布尔的变量。我还尝试在动画之前更新句柄。但它们都没有奏效。
if handles.animation == 0
handles.animation =1;
%%function is called
end
handles.animation = 0;
以上是我使用的代码。我是否犯了一些逻辑错误?或者有更好的方法来做到这一点。
答案 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} }
希望有所帮助!如果不够清楚,请询问!