Pedro - 在您的GUI的OpentFcn中,为轴添加一个按钮:
集(handles.axes1,'buttondownfcn',@ axesbuttondowncallback);
回调函数的名称为
axesButtonDownCallback
。回调会看起来像
函数axesbuttondowncallballballballballballballballballballballballballballback(febupt,eventdata)
handles.currentpoint = get(freming,'prestpoint');
Guidata(令人厌流,处理);
我们得到了
CurrentPoint
轴的财产(
新奇
)并将其保存到
把手
结构体。然后我们需要保存更新的结构
guidata
。这很重要 - 如果您不这样做,那么其他回调将无法访问我们添加的此字段
把手
。然后按下按钮回调
函数按钮1_callback(fhref,eventdata,handles)
如果〜isfield(手柄,“currentPoint”)||isempty(handles.currentpoint)
fprintf('你需要选择一个点!\ n');
其他的
currentPoint = handles.currentPoint;
Handles.CurrentPoint = [];
guidata (hObject处理);
结尾
注意我们如何检查'currentPoint'字段是否存在
把手
结构,或者是否存在,是否为空。如果其中一个为真,则提示用户选择一个点(用对话框替换fprintf)。如果我们确实有一个点,那么我们从结构中提取它,然后在结构中重置该字段,这样用户将在下次按下按钮时提示选择一个新的点。(再次注意,调用
guidata
很重要。)