переопределив методы
void mousePressEvent(QMouseEvent *pEvent) override;
void mouseMoveEvent(QMouseEvent *pEvent) override;
void dragEnterEvent(QDragEnterEvent *pEvent) override;
void dragLeaveEvent(QDragLeaveEvent *pEvent) override;
void dropEvent(QDropEvent *pEvent) override;
в mouseMoveEvent создаю объект QDrag, заполняю какие-то параметры, вызываю exec().
Обычно этому же объекту приходят сначала dragEnterEvent затем dragLeaveEvent (когда курсор мыши вышел за пределы виджета).
Но иногда, между dragEnterEvent и dragLeaveEvent приходят еще два события в указанном порядке: dragLeaveEvent -> dragEnterEvent, при этом курсор мыши не покидал пределы виджета.
Может кто-нибудь решал эту проблему?
Так же попробовал запустить Puzzle из Qt examples. Там эта же проблема присутсвует.
Просто когда этот кейс происходит, если опустить ЛКМ, то dropEvent естественно не придет, а это точка входа для D&D
Обсуждают сегодня