Branching a WindowButtonDown function
2 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
Jason
el 26 de En. de 2020
Respondida: J. Alex Lee
el 26 de En. de 2020
Hi. I have written a windowsButtonDown function (in App Designer) to report back the coordinates of a plot on a UIAxes component.
function figure1WindowButtonDown(app, event)
%Remove any previous drawn "roi point object" that is used to indicate the position clicked on the UIAXes
delete(findobj(app.UIAxes,'type','images.roi.Point'));
z=app.UIAxes.CurrentPoint;
x=z(1,1); y=z(1,2);
%Determine if user clicked on UIAxes
if x >= app.UIAxes.XLim(1) & x <= app.UIAxes.XLim(2) & y >= app.UIAxes.YLim(1) & y <= app.UIAxes.YLim(2)
app.xyAX1=[x,y]; %Save for later use
drawpoint(app.UIAxes,'Position',[x y]);
end
Whilst this works, I also want to use a button down function on a seperate UIAxes4 which holds a greyscale Image (16 bit). (The idea is read back the value on the image at the location as the useful impixelinfo tool (for GUIDE) doesn't work with appdesigner yet.
So I put another if statement in:
%See if user selects the Image (UIAxes 4)
if x >= app.UIAxes4.XLim(1) & x <= app.UIAxes4.XLim(2) & y >= app.UIAxes4.YLim(1) & y <= app.UIAxes4.YLim(2)
delete(findobj(app.UIAxes4,'Marker','+')); %Remove any previously drawn '+'
z=app.UIAxes4.CurrentPoint;
x=round(z(1,1)); y=round(z(1,2));
hold(app.UIAxes4,'on');
plot(app.UIAxes4,x,y,'r+') %Visualise positon on image
% TODO....Then will get value from image at this location
end
But it doesnt seem to be branching correctly, when I click on UIAxes not only does it draw the point (via drawpoint) on the UIAxes, it also does on the UIAxes4 (and resizes the image weirdly!)
0 comentarios
Respuesta aceptada
J. Alex Lee
el 26 de En. de 2020
If you don't mind using undocumented features, I have had success using the standard axes() object instead of uiaxes(), because it still supports the axes's own buttondownfcn. You can make a placeholder uipanel in app designer, then in a startupfcn create an axes in the panel (be sure to declare a custom property to hold that axes object) with the appropriate buttondownfcn.
I think this is the cleaner way within current matlab limitations, to avoid branching on the figures windowbuttondownfcn.
At least with 2019b, I can confirm this doesn't break when creating a web app.
0 comentarios
Más respuestas (0)
Ver también
Categorías
Más información sobre Dialog Boxes en Help Center y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!