Я начал перетаскивание с изображением.
QDrag* drag = new(QDrag)(this);
drag->setPixmap(*pixmap);
drag->exec(Qt::CopyAction | Qt::MoveAction);
Я хочу изменить отображение изображения, когда мое перетаскивание достигнет определенной точки в виджете.
В настоящее время у меня есть идея.После того, как я начинаю первое перетаскивание, когда мое перетаскивание достигает определенной точки, я отменяю первое перетаскивание, а затем возобновляю новое перетаскивание с новым изображением.
Я делаю это в dragMoveEvent
.Я могу начать новое перетаскивание с новым изображением.Но я, кажется, не могу отменить первое перетаскивание.Я обнаружил, что предыдущее действие перетаскивания все еще выполняется.
Любой может предложить:
if (event->mimeData()->hasText())
{
if (need_to_change_pixmap())
{
event->setDropAction(Qt::IgnoreAction);
change_pixmap_restart_drag();
}
else
{
event->setDropAction(Qt::MoveAction);
event->accept();
}
}
else
{
event->ignore();
}
Функция change_pixmap_restart_drag
просто начинает перетаскивание.