How to get mouse coordinates in GUI (AppDesigner) ?

13 次查看(过去 30 天)
I am using MATLAB App Designer and have inserted axes into the app.
When the user clicks a button, I want them to be able to then select a point on the axes. Basically, the functionality should be identical to ginput.
How should I do this? I am aware that related questions have been asked but am honestly not able to understand parts of those or the solutions don't seem to work well. It looks to be something to do with using ButtonDownFcn callback and CurrentPosition but I'm not able to understand how to use these.
Thanks for your help!
Mohit.

采纳的回答

Ameer Hamza
Ameer Hamza 2020-10-2
编辑:Ameer Hamza 2020-10-2
Check the attached app for the demo.
  2 个评论
Mohit Kumar
Mohit Kumar 2020-10-5
编辑:Mohit Kumar 2020-10-8
EDIT : My code seemed to not be working because I was using tabs in my app. Removing the tabs made the code work just fine. Most weird.
Hi Ameer, thanks for the answer. It works perfectly in the app that you sent. However, when I implement it in my code, the Y coordinate seems to be "shifted" by -3.5 coordinates. I've tried to explain this with the picture attached. Here is my code, I don't see anything wrong with it...
% The function for ButtonPushedFcn
function fixed_pts_guess(app,ax,eve)
x_pt = ax.CurrentPoint(1,1);
y_pt = ax.CurrentPoint(1,2);
app.FixedPtsTextArea.Value=num2str([x_pt y_pt]);
end
% The callback function where the implementation happens
function GuessSolutionButtonValueChanged(app, event)
value = app.GuessSolutionButton.Value;
if value % If button is switched on
app.FixedPointsAxes.ButtonDownFcn=@app.fixed_pts_guess;
else
app.FixedPointsAxes.ButtonDownFcn='';
end
end

请先登录,再进行评论。

更多回答(0 个)

类别

Help CenterFile Exchange 中查找有关 Interactive Control and Callbacks 的更多信息

产品


版本

R2020b

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by