gpt4 book ai didi

qt - 接受QGraphicsScene上的墨滴

转载 作者:行者123 更新时间:2023-12-04 11:15:47 24 4
gpt4 key购买 nike

我正在尝试为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。我猜这是因为我无法在 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/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com