How to get mouse coordinates in GUI (AppDesigner) ?

14 visualizzazioni (ultimi 30 giorni)
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.

Risposta accettata

Ameer Hamza
Ameer Hamza il 2 Ott 2020
Modificato: Ameer Hamza il 2 Ott 2020
Check the attached app for the demo.
  2 Commenti
Mohit Kumar
Mohit Kumar il 5 Ott 2020
Modificato: Mohit Kumar il 8 Ott 2020
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

Accedi per commentare.

Più risposte (0)

Categorie

Scopri di più su Interactive Control and Callbacks in Help Center e File Exchange

Prodotti


Release

R2020b

Community Treasure Hunt

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

Start Hunting!

Translated by