用 setappdata(0,‘output’‘,output) 然后在在 output 函数里面get 这个句柄。
如何解决要看要需求是什么,如果是“不希望子窗口被关闭”,那么就要在子窗口的CloseRequest_Fcn中加以阻止。
如果是”希望子窗口被关闭,但不希望这一行为会引起程序错误“,那么可以在这一句中加一个判断:如果output不存在则进行其他的处理。
%%%%%在close回调函数下
function pushbutton3_Callback(hObject, eventdata, handles)
close(gcf)
button=questdlg('是否确认关闭','关闭确认','是','否','是');
if strcmp(button,'是')
delete(hObject);
else
return;
end
前段时间的一个问题matlab gui 循环计算过程实现暂停和继续计算(编号426631696194936852)是题主问的吧?
由于度娘弱智又恶心的过滤机制,后续的交流一直不顺畅(我试图通过评论说明多次被删,也看到多次有评论提醒,但打开却看不到),现把代码上传到这里。
基本做法是,在进行循环之前,加上以下几句:
fig=gcf; figure(fig);setappdata(fig,'Disu_Pause',0)
set(fig,'WindowButtonDownFcn','setappdata(gcbf,''Disu_Pause'',~getappdata(gcbf,''Disu_Pause''))');
然后,在每个循环体的最里层的最前面,加上
% 通过获取自定义的数据Disu_Pause判断是否暂停;关闭窗口则退出try
while true
if ~getappdata(fig,'Disu_Pause')
break
else
pause(001)
end
end
catch me
return
end
基本思想:
1、通过自定义窗口的应用数据避免使用全局变量;
2、设置窗口的WindowButtonDownFcn回调函数在点击鼠标时改变应用数据;
3、在每个循环中,如果状态为pause,则利用形式上的死循环进行等待(每次001秒,是系统时钟的精度),如果不是状态,则退出等待的循环体;
4、用try-catch结构,在关闭窗口时返回(即退出程序)。
在GUI中使用uiwaite和uiresume函数可以达到您的要求也就是在您测程序运行时,如果运行uiwaite那么程序将会暂停,指导您再次运行uirsume时才会启动具体 *** 作方法如下在一个循环语句中执行您的全部命令,每次执行的时候,都判断您是否点击了暂停暂态,如果是则运行uiwaite,如果是继续则运行uiresume,如果是停止则运行return
以上就是关于matlab gui 如何关闭一个窗口全部的内容,包括:matlab gui 如何关闭一个窗口、如何在MATLAB中设置GUI退出控件,显示,按下控件时,提问“是”,“否”,点“是”退出,点“否”、matlab gui 循环计算过程实现暂停和继续计算等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)