Matlab中的持久性错误对话框

时间:2013-11-07 01:23:53

标签: matlab error-handling

我想知道是否有办法阻止在尚未参加现有错误对话框时出现错误对话框(errordlg)。我正在用matlab开发一个GUI,我可以很容易地显示50个错误对话框,然后折叠我的任务管理器,如图所示。

A lot of error dialogs

另一方面,我看到警告或错误对话框,在用户参加之前不允许用户操作GUI。反正有吗?

提前致谢! 查理

2 个答案:

答案 0 :(得分:4)

如果相同的回调正在创建错误对话框,则可以通过检查dbstack多次调用负责回调来阻止回调重入。请参阅isMultipleCall function on this blog

在这里抄袭Yair Altman的功能是没有意义的,但是使用会涉及将以下行放在创建errordialog的回调的顶部:

if isMultipleCall();  return;  end

然后,在你对errordialog进行寻址之前,该回调不能再次运行,允许第一次调用终止。

但是,您可以使用名为'WindowStyle'的{​​{1}}创建错误对话框,这将阻止与对话框关闭之前与任何其他MATLAB窗口的交互。

答案 1 :(得分:3)

errordlg有第三个参数createmode。一个可能的值是'replace',其中所有先前打开的具有相同标题的错误对话框都将关闭。如果50个左右的错误对话框相同,这在您的情况下非常有用。