There is a simple rule - the Z-order applies to items within the same parent (siblings). Period. It's strictly an extension (or realization) of the "painter's algorithm". You cannot change this behaviour in any way other than breaking your parent-child hierarchy or doing the whole GV event processing on your own. It's also natural to the logic of the graphics view architecture - the item and all its children are seen by the environment (parent, cousins) of the item as a single item. Hence you cannot stick something "inbetween" such a hierarchy because from the point of view of the architecture there is no "inbetween".