我有一个gui,上面有两个单选按钮(两个都在同一个uibutton组), 在调用一些内部gui函数时,我发现可以检查两个单选按钮。
是matlab gui的一些已知错误,还是可以通过单选按钮的某些属性来防止这种行为?
我试图关闭单选按钮的'interruptble'和'BusyAction'属性,但仍然可以检查gui忙的时候。
答案 0 :(得分:2)
虽然在不同的情况下,我已经看到了类似于你所观察到的效果。然而,这是预期的行为,因为即使应用程序在后台忙,GUI默认仍应该接受输入 - 然后由应用程序决定是否处理此输入。
您可以通过几种不同的方式明确阻止输入被接受:
在响应无线电按钮上的点击的回调中,您可以在长时间处理之前禁用无线电按钮。如果radiobuttons是按钮组中唯一的控件,那么您可以通过获取radiobuttons的句柄,禁用它们并使用DRAWNOW刷新GUI,轻松地在buttongroup的SelectionChangeFcn
中执行此操作。然后,您将在处理完成后启用radiobuttons。
h = get(get(hObject, 'Parent'), 'Children');
set(h, 'Enable', 'off');
drawnow;
%#
%# LONG PROCESSING
%#
set(h, 'Enable', 'on');
以与上述类似的方式使用BLURFIGURE在处理期间禁用整个 GUI。使用此方法,您可以提供取消按钮。