matlab gui移动位置,matlab - MATLAB GUI:移动绘图点时更新文本框 - 堆栈内存溢出

您可以在创建点之后添加事件侦听器。

创建点:mypoint = drawpoint;

仅在不存在时添加事件侦听器(将其添加到handles ):%Add event listenr only if not exist if ~isfield(handles, 'el') handles.el = addlistener(mypoint, 'ROIMoved', @mypointmoved_Callback); end

更新回调函数中的编辑框:function mypointmoved_Callback(src, eventData) handles = guidata(src.Parent); %Get the handles using the parent of the point (the axes). handles.distx = src.Position(1); handles.disty = src.Position(2); set(handles.edit1, 'String', num2str(handles.distx)); %Simplified version of your code. drawnow

这是代码的简化版本(我在注释中放了一些代码):

% --- Executes on button press in pushbutton1.

function pushbutton1_Callback(hObject, eventdata, handles)

%h = findobj('Name', 'N');

%Ndata = guidata(h);

%axes(Ndata.axes1);

axes(handles.axes1);

mypoint = drawpoint;

%Add event listenr only if not exist

if ~isfield(handles, 'el')

handles.el = addlistener(mypoint, 'ROIMoved', @mypointmoved_Callback);

end

handles.distx = mypoint.Position(1);

handles.disty = mypoint.Position(2);

% xp = Ndata.xpix;

% yp = Ndata.ypix;

% handles.poix = abs(double(handles.distx) - double(Ndata.ISOx))/str2double(xp.String);

% handles.poiy = abs(double(handles.disty) - double(Ndata.ISOy))/str2double(yp.String);

% handles.poi = sqrt(handles.poix^2 + handles.poiy^2)+1.3;

% set(handles.edit1, 'Value', handles.poi);

%set(handles.edit1, 'String', num2str(handles.poi));

set(handles.edit1, 'String', num2str(handles.distx));

% Update handles structure

guidata(hObject, handles);

function mypointmoved_Callback(src, eventData)

handles = guidata(src.Parent); %Get the handles using the parent of the point (the axes).

handles.distx = src.Position(1);

handles.disty = src.Position(2);

set(handles.edit1, 'String', num2str(handles.distx));

drawnow

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值