Я пытаюсь реализовать drag'n'drop для 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(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());
}
Сцена по-прежнему не принимает капли . Я предполагаю, что это потому, что я не могу выполнить setAcceptDrops (true)
на моем QGraphicsScene
.
Как принять капли на графической сцене?