是否可以从函数内部编写 GUI?
问题是所有 GUI 函数的回调都在全局工作区中进行评估。但是函数有自己的工作空间,不能访问全局工作空间中的变量。是否可以让 GUI 函数使用该函数的工作区?例如:
function myvar = myfunc()
myvar = true;
h_fig = figure;
% create a useless button
uicontrol( h_fig, 'style', 'pushbutton', ...
'string', 'clickme', ...
'callback', 'myvar = false' );
% wait for the button to be pressed
while myvar
pause( 0.2 );
end
close( h_fig );
disp( 'this will never be displayed' );
end
这个事件循环将无限期地运行,因为回调不会myvar
在函数中修改。相反,它将myvar
在全局工作区中创建一个新的。