[QT] mousePressEvent von QGraphicsPixmap wird nicht erkannt



  • Folgende Situation. Ich habe eine QGraphicsScene, als Ausgabe benutze ich als Viewport ein QGLWidget. Ich zeichne mehrere QGraphicsPixmapItems in die Scene und bei einem Klick soll sich erstmal nur eine MessageBox öffnen.

    Bei einem Klick soll was passieren, also subclasse ich QGraphicsPixmapItem und definier das Event neu:

    class CardItem : public QGraphicsPixmapItem
    {
    public:
        void mousePressEvent(QGraphicsSceneMouseEvent * event)
        {
            QMessageBox::information(0, "blah", "blahblah");
        }
    };
    

    Der eigentliche Code sieht folgendermasen aus:

    void MainWindow::addCardP2()
    {
        QImage cardimg("img/back.jpg");
        CardItem *testtt = new CardItem;
        testtt->setPixmap(QPixmap::fromImage(cardimg));
        mainScene->addItem(testtt);
        testtt->setPos(P2HandPos, 0);
        P2HandPos += 500;
        group->addToGroup(testtt);
    }
    

    Wie bereits gesagt besteht das Problem darin, dass sich eben keine MessageBox öffnet. Ich hoffe mir kann jemand helfen.



  • Einzige Erklärung: Du hast irgend etwas gedreht, was du uns nicht erzählst 😉
    Z.B. deiner view interactive == false verpasst.



  • Oh man. Du hast Recht. Das ist mir jetzt peinlich. Es liegt daran, dass ich den einzelnen Items noch ne Gruppe zuweise. Wenn ich das weglasse funktionierts. Danke, ohne dich hätte ich bestimmt noch sonstwo gesucht 🙂


Anmelden zum Antworten