我的程序功能是:
在GUI中显示一个figure,鼠标点击figure时,图像更新。
搜素一些资料发现,起初我的鼠标点击无法响应是因为:
初次建立axes控件时,系统获得一个句柄,这个句柄是和该axes是对应的;当显示了图片以后,原先的axes改变了(包括axes轴的x、y轴的范围,比例等),再点击axes轴,这时是点击的图片,并不是原先的axes了,所以ButtonDownFcn当然不会被调用了。
后来我根据一些方法,作了修改,就是显示了图片以后重新获取该图片的句柄,然后设置新函数来响应鼠标点击图片时的动作。
我的代码如下:
这是我opening里面的代码:
axes(handles.axesCleaning1);
Image=imread('F:\matlab2013a\bin\C1InitialFigure.jpg');
hImage=image(Image);
set(hImage,'ButtonDownFcn',@myCallback1);
handles.hImage=hImage;
guidata(hObject,handles);
这是我的自定义函数
function myCallback1(hObject, eventdata, handles)
% hObject handle to axesCleaning1 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
global countC1;
countC1 = countC1 + 1;
ColorValue = [1 0 0];
plotCircle(hObject, ColorValue, 1);
但是,我在自定义函数里面设置了断电,后里发现,我点击图片的时候根本没有进入到那个函数。
哪位高手能帮帮忙,急用。