Я начал перетаскивание с изображением.
QDrag* drag = new(QDrag)(this);
drag->setPixmap(*pixmap);
drag->exec(Qt::CopyAction | Qt::MoveAction);
Я хочу изменить отображение изображения при перетаскивании. ch определенный момент в виджете.
В настоящее время у меня есть идея. Когда я начинаю первое перетаскивание, когда мое перетаскивание достигает определенной точки, я отменяю первое перетаскивание, а затем перезапускаю новое перетаскивание с новым изображением.
Я делаю это в 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
просто запускает перетаскивание.