scenePos() aus QGraphicsSceneMouseEvent verwenden
Verfasst: 15. November 2007 21:25
Hallo zusammen,
Ich habe ein QGraphicsScene, die ein QGraphicsItem namens pointer (einfach ein ausgefüllter Kreis) enthält. Wenn sich der Mauszeiger über der Szene bewegt, soll der Pointer diesem folgen.
Die Pointerklasse sieht folgendermaßen aus:
Die Szene hab ich folgendermaßen implementiert:
Der Pointer wird ohne weiteres dargestellt, es gibt keine Fehlermeldungen weder beim Kompilieren noch zur Laufzeit, jedoch ändert sich die Position des Pointers nicht wenn sich der Mauszeiger bewegt. Kann mir jemand weiterhelfen?
Danke schon mal!
Ich habe ein QGraphicsScene, die ein QGraphicsItem namens pointer (einfach ein ausgefüllter Kreis) enthält. Wenn sich der Mauszeiger über der Szene bewegt, soll der Pointer diesem folgen.
Die Pointerklasse sieht folgendermaßen aus:
Code: Alles auswählen
// -- pointer.h ------------------------------------
//...
class Pointer : public QObject, QGraphicsItem
{
Q_OBJECT
public:
Pointer();
//...
};
Die Szene hab ich folgendermaßen implementiert:
Code: Alles auswählen
// -- graphwidget.h ------------------------------------
//...
class Pointer
class GraphWidget : public QGraphicsView
{
Q_OBJECT
public:
GraphWidget(QWidget *startMenue);
protected:
void mouseMoveEvent(QGraphicsSceneMouseEvent *event);
//...
private:
Pointer *pointer;
}
Code: Alles auswählen
// -- graphwidget.cpp ------------------------------------
GraphWidget::GraphWidget(QWidget *startMenue)
{
//...
this->setMouseTracking(true);
QQraphicsScene *scene = new QGraphicsScene(this)
//...
setScene(scene);
//...
pointer = new Pointer;
scene->addItem(pointer);
//...
}
//...
void GraphWidget::mouseMoveEvent(QGraphicsSceneMouseMoveEvent *event)
{
event->accept();
pointer->setPos(event->scenePos());
}
Danke schon mal!