Frage von JoeMiebach, 26

Brauche hilfe in C++, bin Neueinsteiger und brauche jemanden der mir mit qkeyevent weiterhelfen kann?

Ich versuche mich an den ersten leichten "Grafischen" Aufgaben, wer kann mir Helfen ? Hier ist der Code:

#include <QGraphicsScene>
#include <QGraphicsView>
#include <QGraphicsRectItem>
#include <QApplication>


int main(int argc, char *argv[])
{
    QApplication a(argc, argv);


    QGraphicsScene * Szene = new QGraphicsScene(-100, -100, 1000, 1000);

    QGraphicsRectItem * Rechteck = new QGraphicsRectItem(0, 0, 200, 200);
    QGraphicsRectItem * Rechteck2 = new QGraphicsRectItem (95, 20, 10, 50);
    QGraphicsRectItem * Rechteck3 = new QGraphicsRectItem (75, 90, 50, 50);
    QGraphicsRectItem * Rechteck4 = new QGraphicsRectItem (0, 0, 50, 50);
    QGraphicsRectItem * Rechteck5 = new QGraphicsRectItem (150, 0, 50, 50);

    Szene->addItem(Rechteck);
    Szene->addItem(Rechteck2);
    Szene->addItem(Rechteck3);
    Szene->addItem(Rechteck4);
    Szene->addItem(Rechteck5);

    QGraphicsView * view = new QGraphicsView(Szene);
 
    view->show();

    while(true){
        if( event->key() == Qt::Key_W )
        {
          Rechteck->setPos(-1,+0);
          Rechteck2->setPos(-1,+0);
          Rechteck3->setPos(-1,+0);
          Rechteck4->setPos(-1,+0);
          Rechteck5->setPos(-1,+0);
        }

    }

    return a.exec();
}
Antwort
von KaiAbuSir, 3

Hallo, also:Du möchtest vermultich auf eine Key-Input reagieren.

Dafür musst du die Klasse ableiten, und virtuellen event handler der Basis-Klasse überschreiben, also:entweder:

QGraphicsItem::keyPressEvent(QKeyEvent *event)

oder

QGraphicsView::keyPressEvent(QKeyEvent *event)

Man kann auch andere Events überschreiben, oder sogar die EventLoop, oder einen EventFilter installieren, aber das ist noch komplizierter.

Antwort
von NDSxProgger, 5

Aber du beschreibst doch keinen Fehler oder wobei du Hilfe brauchst, wie soll dir da jemand helfen?

Keine passende Antwort gefunden?

Fragen Sie die Community