【发布时间】:2011-12-05 23:29:24
【问题描述】:
我开始用图像拖动。
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 函数只是开始拖动。
【问题讨论】:
标签: c++ qt qt4 drag-and-drop