我开始拖放图像。Qt拖放 - 拖动时更改图像显示
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
功能只是开始拖动。
感谢您的信息。 –
@Kong我添加了一些关于可能的解决方法的信息。 – alexisdm