我正在尝试通过在其上放置图像来更改QGraphicsObject
的图像。但即使我从硬盘或互联网浏览器中拖放图像,QMimeData::hasImage()
总是返回false。
birdItem::birdItem(QGraphicsItem *parent)
: QGraphicsObject(parent)
{
setAcceptDrops(true);
item = new QImage(":/images/bird.png");
setPos(mapFromScene(100, 450));
setCursor(QCursor(Qt::PointingHandCursor));
}
void birdItem::dropEvent(QGraphicsSceneDragDropEvent *event)
{
if (event -> mimeData() -> hasImage()) {
qDebug() << "got Image";
item = new QImage(qvariant_cast<QImage>(event -> mimeData() -> imageData()));
update();
}
else
qDebug() << "not an Image";
}
void birdItem::dragEnterEvent(QGraphicsSceneDragDropEvent *event)
{
if (event -> mimeData() -> hasImage()) {
qDebug() << "got an Image enter EVnet";
event -> setAccepted(true);
update();
}
else
qDebug() << "not an image eneter event";
}
我总是觉得我没有丢掉图像。我试着拖动png和jpg图像,但我不知道格式是否在这里很重要。你知道发生了什么吗?