【发布时间】:2011-05-09 19:53:00
【问题描述】:
我正在尝试为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());
}
场景仍然不会accept drops。我猜那是因为我不能在我的QGraphicsScene 上做setAcceptDrops(true)。
如何在图形场景中接受掉落?
【问题讨论】:
标签: qt drag-and-drop qgraphicsview