我正在尝试向GUI添加一个停止按钮,该按钮可用于中止gui和执行while while循环后台。考虑代码:
function pushFun(button)
disp("Push!")
endfunction
h = figure(1);
set(h,'UserData',1);
button = uicontrol(h, 'Style', 'pushbutton', 'String', 'Stop',..
'Position', [0 0 60 25], 'callback', 'pushFun',..
"callback_type", 2);
效果很好。但是代码:
function stopgui()
global guistop;
guistop = %t;
endfunction
h = figure(1);
set(h,'UserData',1);
global guistop
guistop = %f;
button = uicontrol(h, 'Style', 'pushbutton', 'String', 'Stop',..
'Position', [0 0 60 25], 'callback', 'stopgui',..
"callback_type", 2);
while ~guistop
// some code here
sleep(100)
end
不响应按钮交互。如果您能帮助我知道问题出在哪里以及如何解决,我将不胜感激。
答案 0 :(得分:1)
您必须使用回调类型10(优先(或不间断)的Scilab指令):
button = uicontrol(h, 'Style', 'pushbutton', 'String', 'Stop',..
'Position', [0 0 60 25], 'callback', 'stopgui',..
'callback_type', 10);