matlab gui 如何关闭一个窗口

matlab gui 如何关闭一个窗口,第1张

用 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 循环计算过程实现暂停和继续计算等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zz/9720213.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-01
下一篇 2023-05-01

发表评论

登录后才能评论

评论列表(0条)

保存