Я работаю над внедрением перетаскивания материала в сцену для студийного проекта 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