QMimeData :: hasImage()总是返回false

时间:2015-08-21 02:11:28

标签: c++ qt

我正在尝试通过在其上放置图像来更改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图像,但我不知道格式是否在这里很重要。你知道发生了什么吗?

0 个答案:

没有答案