作者chris0104 (如果这就是爱..)
看板MATLAB
标题[问题] GUI, callback即时回传while回圈数值
时间Wed Apr 20 14:00:07 2016
各位大大好,小弟需求是这样...
1. GUI上有两个pushbutton: start & pause以及一个edit text
2. 按下start,对萤幕上的某数值X做影像辨识,X会随时间改变,所以我用while loop
直到X>300才跳出回圈,在回圈执行的同时,我想把每次辨识到的X显示在edit text
3. 按下Pause可以暂停影像辨识
遇到的问题是这样...
Q1. 我在function start_callback里面写
handles.pauseflag = 0; %判别pause为true or false
while
X = ocr(); %ocr为影像辨识函式
set(handles.edittext, 'String', num2str(X));
if X>300,
break;
elseif handles.pauseflag==1, %pause为true
break;
end
end
结果是必须等while回圈跑完,才会显示最後一笔X在edit text,
并不如我预期,即时显示每一笔X,请问我该加什麽叙述?
Q2. 我在function pause_callback里面写
handles.pauseflag = 1;
guidata(hObject, handles);
结果完全无法停止while回圈,请问我需要加入甚麽叙述?
小弟想了一整夜,实在找不到方法,恳请各位大大赐教,谢谢
********** 解答 ***********
http://stackoverflow.com/questions/28364243/stop-a-gui-in-a-middle-of-process-in-matlab
***************************
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 123.240.158.124
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/MATLAB/M.1461132010.A.EDE.html
※ 编辑: chris0104 (123.240.158.124), 04/20/2016 14:17:00
※ 编辑: chris0104 (123.240.158.124), 04/20/2016 14:21:25
※ 编辑: chris0104 (123.240.158.124), 04/20/2016 14:21:48
※ 编辑: chris0104 (123.240.158.124), 04/20/2016 14:25:40
※ 编辑: chris0104 (123.240.158.124), 04/20/2016 19:34:31
※ 编辑: chris0104 (123.240.158.124), 04/20/2016 19:34:57
1F:→ jatj: drawnow 即可即时显示回圈 04/22 08:56
2F:→ jatj: 的内容在UI上 04/22 08:57