Funkcja dropEvent(QGraphicsSceneDragDropEvent *event) nie przechwytuje zdarzeń



  • Witam. Piszę grę w statki i przy przenoszeniu statków chcę je upuścić aby następnie wyczytać ich pozycję i robić inne rzeczy. Problem w tym że funkcja od przechwytu DropEvent nie działa.
    Samo przenoszenie statku mam zaimplementowane przez dodanie flagi ;

    statek_1->setFlag(QGraphicsItem::ItemIsMovable);

    Poniżej wycinek kodu deklaracji statka typu QGraphicsItem w konstruktorze:

    QPixmap dwuMasztowiec;
    dwuMasztowiec = QPixmap("../Statki/images/dwu.png");
    statek_1 = scene->addPixmap(dwuMasztowiec);
    statek_1->setPos(277,405);
    statek_1->setFlag(QGraphicsItem::ItemIsMovable);

    a następnie kod funkcji dropEvent (skopiowany z przykładu o robocie)

    void Plansza::dropEvent(QGraphicsSceneDragDropEvent *event)
    {
    if (event->mimeData()->hasImage()) {
    dragOver = false;
    pixmap = qVariantValue<QPixmap>(event->mimeData()->imageData());
    update();
    } else {
    Plansza::dropEvent(event);
    }
    }

    I chcę jeszcze dopowiedzieć że w konstruktorze dodałem funkcje : setAcceptDrops(true)

    Proszę o pomoc. W razie potrzeby wrzucę cały kod. Pzd


Log in to reply
 

Looks like your connection to Qt Forum was lost, please wait while we try to reconnect.