作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试为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());
}
setAcceptDrops(true)
上执行
QGraphicsScene
。
最佳答案
这里的技巧是还接受QGraphicsScene::dragMoveEvent()中的事件!
原因是DEFAULT实现,如果鼠标下没有任何项目,该实现将忽略拖放事件!
另请参阅:http://www.qtcentre.org/threads/8022-QGraphicsScene-doesn-t-accept-Drops
干杯
关于qt - 接受QGraphicsScene上的墨滴,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4177720/
我是一名优秀的程序员,十分优秀!