我開始拖放圖像。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