ドラッグで画像を開始しました。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