I have been trying to turn the HitTest property off for an imrect object, such that I can click on objects behind it. However, a simple "set(imrectHan,'HitTest','off');" does not do the trick. Does anyone know how to solve this?

 Akzeptierte Antwort

Sean de Wolski
Sean de Wolski am 15 Jul. 2014
Bearbeitet: Sean de Wolski am 15 Jul. 2014

1 Stimme

The imrect is built from low-level lines and patches so turn the imrect's Children's 'HitTest' off.
h = imrect
set(get(h,'Children'),'HitTest','off')

2 Kommentare

Ben11
Ben11 am 15 Jul. 2014
That's good to know Sean thanks!
Stephen
Stephen am 15 Jul. 2014
Thank you, that worked very well!

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (2)

Ben11
Ben11 am 15 Jul. 2014
Bearbeitet: Ben11 am 15 Jul. 2014

1 Stimme

What if you inverse the order of Children in your axes? Basically you would send the rectangle at the "back" of the current axis so you could play around with other elements. When you're done you can switch back. It might not be perfect but I think it would work; from the Matlab doc imrect does not have a HitTest property so maybe that's why using it does not work.
Example code to flip the order of the axes children:
set(gca,'children',flipud(get(gca,'children')))
Thanks to Matt Fig who provided the idea here
I tried with a simple code and 2 rectangles and it worked well.

4 Kommentare

Stephen
Stephen am 15 Jul. 2014
Thanks for the suggestion, but that didn't work for me. What happened instead is that I couldn't see the rectangle at all, but the rectangle I couldn't see still received the click inside of its area.
Ben11
Ben11 am 15 Jul. 2014
Oh I see sorry.
Stephen
Stephen am 15 Jul. 2014
Very happy to have the help! Any suggestions are mana when stuck
Ben11
Ben11 am 15 Jul. 2014
Yep! I learned something with Sean's answer ; I did not know the trick to get the Children of imrect that's nice.

Melden Sie sich an, um zu kommentieren.

Brian
Brian am 16 Jan. 2023

0 Stimmen

NOTE: I created an image in a UIAxes using imagesc:
app.My_image_handle = imagesc(app.UWBAxes, app.UWBdata);
In that case I do NOT set the HitTest property of children of the image handle. Rather I set it directly on the image handle:
set(app.My_image_handle,'HitTest','off')

Kategorien

Mehr zu Data Import and Export finden Sie in Hilfe-Center und File Exchange

Gefragt:

am 15 Jul. 2014

Beantwortet:

am 16 Jan. 2023

Community Treasure Hunt

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

Start Hunting!

Translated by