MATLAB:用'ButtonDownFcn'关闭图形时右键单击窗口后面

时间:2014-04-30 07:59:42

标签: matlab matlab-figure

我遇到了一个具体的问题,可以在下面的小脚本中总结出来。显然,这是一个更大项目的一部分。

此脚本(称为'my_test.m')打开一个图形并显示图像。设置'ButtonDownFcn',以便在右键单击图像时关闭图形

让我烦恼的行为是,在数字关闭后,右键点击会在数字背后的任何内容上激活。好像从来没有一个人物。

您是否有想法阻止此行为并告诉操作系统忽略右键单击? 提前谢谢。

配置:

  • Matlab:R2011b - 64位
  • Windows 7

脚本:

function my_test()
handles.f=figure;
handles.a=imshow(ones(400));
set(handles.a,'ButtonDownFcn',{@image_ButtonDownFcn});
guidata(handles.f,handles);

function image_ButtonDownFcn(hObject, eventdata)
handles=guidata(hObject);
switch lower(get(handles.f, 'selectiontype'))
  case 'alt' % right click
    close(handles.f);
end

1 个答案:

答案 0 :(得分:2)

感谢Lucius Domitius AhenobarbusRTL,我修改了代码并且它有效。我刚刚更换了这一行:

close(handles.f);

......通过这个:

set(handles.f,'WindowButtonUpFcn','close(gcf);');

这个想法是使用图中的'WindowButtonUpFcn'(图像或轴没有这样的回调),这样在鼠标点击时没有任何反应,但是在鼠标点击释放时图形会自动关闭。可能有更整洁的解决方案?