Pie*_*ter 7 qt drag-and-drop qgraphicsview
我正在尝试实现拖拽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());
}
Run Code Online (Sandbox Code Playgroud)
现场仍然不接受掉落.我猜这是因为我不能做setAcceptDrops(true)我的QGraphicsScene.
如何接受图形场景中的墨滴?
小智 9
这里的技巧是在QGraphicsScene :: dragMoveEvent()中接受事件!
原因是DEFAULT实现,如果鼠标下没有项目,则忽略拖放事件!
另请参阅:http://www.qtcentre.org/threads/8022-QGraphicsScene-doesn-t-accept-Drops
干杯
| 归档时间: |
|
| 查看次数: |
5623 次 |
| 最近记录: |