- Qt::CopyAction: den selektierten Inhalt kopieren, wenn der "Drop" in einem anderen Widget erfolgt.
- Qt::MoveAction: den selektierten Inhalt verschieben, wenn der "Drop" in dem selben Widget erfolgt.
Was mir dazu fehlt ist ein (allgemeinverbindliches) Unterscheidungsmerkmal.
Beispielcode:
Code: Alles auswählen
void QDragListView::mouseMoveEvent(QMouseEvent *event){
// hier gibt es noch Vorbereitenden Code
// ......
QDrag *drag = new QDrag(this);
QMimeData *mimeData = new QMimeData;
mimeData->setText( liste() ); // liste() erzeugt den Inhalt "text/plain"
drag->setMimeData(mimeData);
Qt::DropAction action = drag->exec(Qt::CopyAction | Qt::MoveAction, Qt::CopyAction);
QWidget *source = drag->source();
QWidget *target = drag->target();
if ( target == source ) {
// hier ist target != source auch wenn der Drop im selben Widget erfolgt
// und action == Qt::CopyAction
}
}