I need to stop QDrag when dragEnterEvent occurs. I want to release QDrag without releasing mouse button.
I have tried to send events to QDrag with no luck.
QMouseEvent* evt = new QMouseEvent(QEvent::MouseButtonRelease,event->pos() ,Qt::LeftButton, Qt::LeftButton, Qt::NoModifier);
QCoreApplication::sendEvent(drag,evt);
How to achieve this?
Update: I would like to release mouse when QDragEvent occurs.
QMouseEvent* finishMoveEvent = new QMouseEvent (QEvent::MouseButtonRelease, event->pos (), Qt::LeftButton, Qt::LeftButton, Qt::NoModifier);
QTabBar::mouseReleaseEvent(finishMoveEvent);
qApp->sendEvent(parentWidget(),finishMoveEvent);
qApp->sendEvent(drag,finishMoveEvent);
qApp->postEvent(drag,finishMoveEvent,Qt::HighEventPriority);
I tried each of line in all possible combinations. Please help.
How to release QDrag during QDragEnterEvent.
The drag itself does not receive the mouse events, widgets do. The drag filters/intercepts those events. You need to send the relevant event to the target widget, and hope that the user experience won't suffer.