Estoy intentando implementar drag'n'drop para un QGraphicsScene
. Aquí están los eventos que he sobrecargado:Aceptando gotas en un QGraphicsScene
void TargetScene::dragEnterEvent(QGraphicsSceneDragDropEvent *event) {
bool acceptDrag = false;
const QMimeData* mime = event->mimeData();
// Is an image present?
if (mime->hasImage()) {
QImage img = qvariant_cast<QImage>(mime->imageData());
dragPix = QPixmap::fromImage(img);
acceptDrag = !dragPix.isNull();
}
event->setAccepted(acceptDrag);
}
void TargetScene::dropEvent(QGraphicsSceneDragDropEvent *event) {
// Add dragged pixmap to scene
QGraphicsPixmapItem* newPix = this->addPixmap(dragPix);
newPix->setPos(event->pos().x(), event->pos().y());
}
La escena sigue sin accept drops. Supongo que es porque no puedo hacer setAcceptDrops(true)
en mi QGraphicsScene
.
¿Cómo acepto las gotas en una escena de gráficos?
Si acepta la caída en '' dragEnterEvent() '', entonces es suficiente con sólo anular '' dragMoveEvent() '' con una función de vacío, así como para evitar el comportamiento predeterminado de QGraphicsScene. – jcoffland