Остановите QDrag вручную

Мне нужно остановить QDrag, когда происходит dragEnterEvent. Я хочу выпустить QDrag без отпускания кнопки мыши.

Я попытался отправить события в QDrag безуспешно.

QMouseEvent* evt = new QMouseEvent(QEvent::MouseButtonRelease,event->pos() ,Qt::LeftButton,  Qt::LeftButton, Qt::NoModifier);
QCoreApplication::sendEvent(drag,evt);

Как этого добиться?

Обновить:
Я хотел бы отпустить мышь, когда происходит QDragEvent.

  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);

Я перепробовал каждую строчку во всех возможных комбинациях. Пожалуйста помоги.

Как освободить QDrag во время QDragEnterEvent.

2

Решение

Само перетаскивание не получает события мыши, виджеты -. Перетаскивание фильтрует / перехватывает эти события. Вам нужно отправить соответствующее событие в целевой виджет и надеяться, что пользовательский опыт не пострадает.

0

Другие решения


По вопросам рекламы [email protected]