Мой виджет сохраняет право собственности на QDrag даже после того, как предмет покидает - PullRequest
0 голосов
/ 16 марта 2019

Я работаю над внедрением перетаскивания материала в сцену для студийного проекта Appleseed.

Когда перетаскиваемый элемент покидает сцену (RenderWidget), dragMoveEvent по-прежнему вызывается так, как будто он находится внутри сцены. Судя по тому, что я проверил, похоже, это связано с тем, что MainWindow drop drop.

Пока я использую это решение:

void RenderWidget::dragMoveEvent(QDragMoveEvent* event)
{
    if (pos().x() <= event->pos().x() && pos().y() <= event->pos().y()
        && event->pos().x() < pos().x() + width() && event->pos().y() < pos().y() + height())
    {
        event->accept();
    }
    else
        event->ignore();
}

Но так как «event-> pos ()» является только относительной позицией перетаскиваемого элемента, он надежен на 100%.

Кто-нибудь знает, как заставить Qt вызывать «dragLeaveEvent» из «RenderWidget», когда перетаскиваемый элемент фактически покидает виджет?

вилка: https://github.com/Uedaki/appleseed

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...