2013-06-04 194 views
1

我对MatLab GUI构建相当新颖,并且在GUI中有一个“继续”按钮。陷入while循环; MATLAB GUI

因此,基本上,在我的程序中的某个时刻,程序必须等待用户点击“继续”按钮才能继续。

我能想到的唯一方法是让程序在while循环中无限循环 ,直到单击按钮并退出循环。这似乎并不奏效。

所以循环如下:

while (get(handles.continue,'value')) == 0 
    disp('in the loop') 
    guidata(hObject,handles); 
end 

但是,它不退出循环。我试着将这个按钮从pushbutton更改为togglebutton,但它不会退出循环。

我知道这不是让程序等待的最有效方式,但任何人都可以告诉我它为什么不退出该循环或提出更有效的方法?

+3

看来你有同样的问题,因为[这里](http://stackoverflow.com/questions/4522447/breaking-from-for-loop-in-matlab-gui?rq=1)。看到接受的答案。 –

回答

1

做到这一点,正确的方法是编写与继续按钮相关的callback

set(handles.continue, 'Callback', @continueProcessing); 

然后,写一个continueProcessing函数做什么,那就是你需要的用户按下按钮后做。原型是如下:每当按下按钮

function continueProcessing(hObj, event) 
    ... 
end 

continueProcessing()运行。请注意,MATLAB 必须中的回调函数的前两个参数为hObj(其调用回调函数的句柄)和eventdata