matlab - 错误时关闭/删除 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 的唯一解决方案。
解决方案
您可以使用清理对象
p = uiprogressdlg(figH,'Message','Plotting...','Indeterminate','on','Cancelable','on','CancelText','Close')
cleanupObjPB = onCleanup(@() close(p));
onCleanup 函数将在变量 a 被删除时执行。所以退出调试器将重置进度条
推荐阅读
- node.js - 哪个先执行?graphql中的查询或突变?
- docker - gitlab-ci 将本地文件推送到服务器
- python - 使用python函数从1到x的偶数平方和
- c++ - 将密码解码为消息功能无法正常工作
- c++ - 模板推导和隐式构造函数
- google-chrome - Chromium 和 webmidi:平台相关初始化失败
- python - 如何使用Python从pdf中提取的文本中计算列表中的单词数?
- javascript - Filepond + Pintura Vue 2 将 SVG 转换为 PNG
- php - 如果类别在 Laravel 中没有子类别,则删除图标箭头
- c++ - 检查我在重载运算符中传递和返回的内容