One option would be to handle drag and drop events by installing an event filter on children.

Qt Code:
  1. bool Parent::eventFilter(QObject* receiver, QEvent* event)
  2. {
  3. DraggableLED* led = dynamic_cast<DraggableLED*>(receiver);
  4. if (!led)
  5. return false; // not a DraggableLED
  6.  
  7. switch (event->type())
  8. {
  9. case QEvent::DragEnter:
  10. // do something with led
  11. break;
  12. ...
  13. }
  14. return false;
  15. }
To copy to clipboard, switch view to plain text mode 

The difference with reimplementing such event handler of the parent is that by the time event reaches parent it has already been ignored by the child:
Qt Code:
  1. void Parent::dragEnterEvent(..)
  2. {
  3. ...
  4. }
To copy to clipboard, switch view to plain text mode