首页 > 解决方案 > 错误时关闭/删除 Matlab AppDesigner 的 uiprogressdlg

问题描述

我想知道当任何回调函数内部发生错误时,如何关闭名为“uiprogressdlg”的 AppDesigner 的“waitbar”等效项。

我不想实现任何 try-catch-elements。

我尝试使用“KeyPressFcn”、“WindowKeyPressFcn”、“SizeChangedFcn”。但它们只有在没有 uiprogressdlg-box 运行时才起作用。

我无法使用 evalin('base','app') 获取 uiprogressdlg 句柄。就我而言,我使用“app.PB = uiprogressdlg(app.GUIname,....)”,“PB”是“app”的公共属性。

用例:在使用和调试应用程序时,我不想在发生这种情况时进行完整的应用程序重新启动,但现在,这是关闭 uiprogressdlg-box 的唯一解决方案。

标签: matlabuser-interfacematlab-app-designer

解决方案


您可以使用清理对象

    p = uiprogressdlg(figH,'Message','Plotting...','Indeterminate','on','Cancelable','on','CancelText','Close')
cleanupObjPB = onCleanup(@() close(p));

onCleanup 函数将在变量 a 被删除时执行。所以退出调试器将重置进度条


推荐阅读