[Interest] hover events on graphics scene

Ruth Ivimey-Cook ruth at ivimey.org
Thu Jun 20 20:42:45 CEST 2013


It was suggested that I ask about this here.

I have a graphics scene and want to monitor hover events for the items 
in the scene, but they're not getting through. I've debugged the code 
and the problem appears to be that I'm using a layered structure with 
items having child items. So:

GraphicsScene ---+ GroupItem ---+ GraphicsItem(s)
                  |              | GraphicsItem(s)
                  |              \ GraphicsItem(s)
                  + GroupItem ---+ GraphicsItem(s)
                  |              | GraphicsItem(s)
                  |              \ GraphicsItem(s)
                  + GroupItem ---+ GraphicsItem(s)
                                 | GraphicsItem(s)
                                 \ GraphicsItem(s)

I create this structure by making a group event, adding children to it, 
then adding the group to the scene. There are typically thousands of 
graphics items in each group, and I group them so that (a) the z-order 
of each group and hence each item is consistent, and (b) so that I can 
recreate, hide and show groups without needing a total redraw. In the 
real code, there are about 8 groups in all.

It appears that the reason things don't get hover events is the code 
that looks to see if such events need reporting isn't recursive down the 
layers ( I think) but just looks at the item being added to the scene. 
But if you enable hover events on the parent (group) item, so that when 
the GraphicsItems are added to it the hover event flag is set, its 
(only) the parent group that gets the events.

If the hover event code is thus enabled, and matches more than one item 
at a pixel location (i.e. there are several things at the same place on 
the screen) then only the first in the list seems to get the event - 
hence only the group getting events.

A group item doesn't have a graphical appearance so IMO shouldn't ever 
receive hovers... though perhaps that's up for debate. I'd certainly 
like for the groups to ignore hovers and only have items see them.

Any thoughts?


Software Manager & Engineer
Tel: 01223 414180
Blog: http://www.ivimey.org/blog
LinkedIn: http://uk.linkedin.com/in/ruthivimeycook/

More information about the Interest mailing list