Labfans是一个针对大学生、工程师和科研工作者的技术社区。 | 论坛首页 | 联系我们(Contact Us) |
![]() |
![]() |
#1 |
高级会员
注册日期: 2019-11-21
帖子: 3,006
声望力: 66 ![]() |
![]()
我的Matlab GUI使用按钮单击来启动另一个GUI。
最近,我发现如果过分单击该按钮,则会导致Matlab崩溃并出现递归错误(请参见下面的说明)。是什么导致此递归错误,下一次如何解决? 错误说明: ???在155使用==> hgload> localCheckRecursion时出错在加载c:\ Algo \ MyGUI.fig时发生递归。 ==> hgload在56 Guard时出错= localCheckRecursion(fullpath); %#好 ==> openfig在72时出错[fig,savedvisible] = hgload(filename,struct('Visible','off')); 在==> gui_mainfcn> local_openfig中出现错误286 gui_hFigure = openfig(name,singleton,visible); ==> gui_mainfcn错误159 gui_hFigure = local_openfig(gui_State.gui_Name,gui_SingletonOpt,gui_Visible); ==> PumpControl在42 gui_mainfcn(gui_State,varargin {:})时出错; 回答: 重复单击GUI按钮可能导致多次调用按钮回调,这可能在某些时候相互中断并导致不必要的混乱。这可能是您遇到的问题。 您可以在MATLAB中设计GUI控件,以使其通过设置如下的'BusyAction'和'Interruptible'属性(其中hButton是按钮对象的句柄)来忽略快速单击,例如: set(hButton,'BusyAction','cancel','Interruptible','off'); 将'Interruptible'设置为'off'意味着按钮回调在运行时不会被中断(某些“特殊”回调除外),而将'BusyAction'设置为'cancel'意味着在以下情况下将忽略按钮单击另一个回调(或它自己的)已经在执行。 更多&回答... |
![]() |
![]() |