I'm using drag and drop on QWidget, I have reimplemented dragEnterEvent, dragLeaveEvent, dragMoveEvent and dropEvent, and that works well.
In my QWidget, I have other QWidget children, and I want them to manage drag and drop too. The issue is my parent QWidget catch the dnd events, so my children don't get it. What is the best way to say "when you are above a child widget, the child get the dnd events" ?
Thanks
Edit:
my widgets looks like this:
----------------------------------------
| Parent Widget |
| ------------------ |
| | Child Widget | |
| | | |
| ------------------ |
| |
----------------------------------------
my parent widget and child widget are of the same class.
The code is quite basic, it's similar to this:
DnDWidget::DnDWidget(QWidget* parent)
: QWidget(parent)
{
setAcceptDrops(true);
}
void DnDWidget::dragEnterEvent (QDragEnterEvent* event )
{
qDebug() << "dragEnterEvent";
if (event->mimeData()->hasFormat("foo/bar"))
event->acceptProposedAction();
}
void DnDWidget::dragMoveEvent (QDragMoveEvent* event )
{
qDebug() << "dragMoveEvent";
//do visual feedback stuff
}
the dragEnterEvent of my child is never called.