title: Passing / forwarding events to a sub-object in Qt
body: <p>I'm working on a Qt application and I have a problem with getting mouse events where I want them.  </p>
  
  <p>Here's a high-level view of what I have (there are other things going on at each level that dictate the need for the views and scenes):</p>
  
  <pre><code>+----------------
  | App Window       -- QMainWindow
  | +--------------
  | | View           -- QGraphicsView   --- Grabbing mouse events here for Mode 1
  | | +------------
  | | | Scene        -- QGraphicsScene
  | | | +----------
  | | | | Image      -- QGraphicsPixmap --- Want to grab mouse events here for Mode 2
  | | | | 
  </code></pre>
  
  <p>In Mode 1, I'm grabbing the event <em>mousePressEvent</em> at the <em>View</em> level.  In Mode 2, I'd like to grab the mouse events at the <em>Image</em> level.  Before I overloaded <em>mousePressEvent</em> in the View class I was able to get all events in <em>Image</em>.  Now that I'm capturing at <em>View</em> I can't get mouse events in Image.  <em>Image</em> is private within <em>Scene</em> and I don't want to expose it.  </p>
  
  <p>There is no inheritance here; each item is an object created by the object above it.</p>
  
  <p>Reading through this question <a href="https://stackoverflow.com/questions/1354877/qt-pass-events-to-multiple-objects">Qt -- pass events to multiple objects?</a> makes it seem like I want to capture mouse events at the <em>Image</em> level and let them go back up; however, I would still need to create <em>mousePressEvent</em> in <em>View</em> and I'd be right back where I am.</p>
  
  <p>Is there a way to turn on/off event handling during run-time and make sure they get to the lower levels?  Or is there a way to forward events to a sub-object?</p>