Update der QGraphicsView

Alles rund um die Programmierung mit Qt
Antworten
mabu
Beiträge: 4
Registriert: 18. Dezember 2006 13:09

Update der QGraphicsView

Beitrag von mabu »

Hi,

ich schreibe zur Zeit an einer Applikation, die ueber von auszen ( genauer UDP Broadcast ) periodisch Daten bekommt, die dargestellt werden sollen.

Nun habe ich 2 DockWidgets angelegt und ein CentralWidget auf dem gezeichnet wird. Das CentralWidget ist von QGraphicsView abgeleitet und dessen drawBackground Methode ueberschrieben um mir einen eigenen Hintergrund zu malen.

Weiters habe ich dann Klassen von QGraphicsEllipseItem abgeleitet um die externen Daten auch dort halten zu koennen.

Mein Problem nun:
Wenn ich die Applikation starte, kommen Daten rein, der Callback wird aufgerufen und die neue Position des QGraphicsEllipseItem gesetzt - ABER es passiert nichts. Die QGraphicsView/Scene scheint kein redraw() zu machen.
Wenn ich nun die DockWidget bewege/resize, dann erscheinen die QGraphicsEllipseItem an ihrem Ort, wo sie sein soll(t)en.

Ich finde aber nicht heraus, wieso das nicht passiert, wenn der Callback eine neue Position der Objekte setzt.

Hat jemand eine Idee?


TIA
upsala
Beiträge: 3946
Registriert: 5. Februar 2006 20:52
Wohnort: Landshut
Kontaktdaten:

Beitrag von upsala »

Entweder sind die Signale der Scene geblockt. Oder du rufst den Event-Handler nicht auf.
mabu
Beiträge: 4
Registriert: 18. Dezember 2006 13:09

Beitrag von mabu »

aeeeehm - Welchen Eventhandler?

Ich setze die Position des QGraphicsEllipseItem immer neu. Somit war meine Erwartung, dass hier automatisch ein redraw() passiert.

Folgende Methode ist auch ueberschrieben:
http://doc.trolltech.com/4.2/qgraphicsi ... itemChange

Und ueber diese Events kommen rein nachdem ich die Position neu gesetzt habe.
Aber die draw(...) Methode wird nicht aufgerufen. Ich habe diese ueberschrieben um zu sehen ob etwas passiert, rufe darin auch die QGraphicsEllipse::draw() - Methode auf.
mabu
Beiträge: 4
Registriert: 18. Dezember 2006 13:09

Beitrag von mabu »

Meinst du folgende Methode?
http://doc.trolltech.com/4.2/qobject.html#blockSignals

Also explizit rufe ich die Methode nicht auf ... :roll:
upsala
Beiträge: 3946
Registriert: 5. Februar 2006 20:52
Wohnort: Landshut
Kontaktdaten:

Beitrag von upsala »

Sorry, ich meinte die Event-Loop. Hmm, ich denke es wird Zeit für etwas Code.
mabu
Beiträge: 4
Registriert: 18. Dezember 2006 13:09

Beitrag von mabu »

Nachdem ich nicht genau weiss, was du sehen moechtest:

http://ablepsia.net/robocup/code/

pitch.* -> von QGraphicsView abgeleitet
robot_control.* -> von QGraphicsEllipseItem abgeleitet
hilby
Beiträge: 31
Registriert: 31. Mai 2006 16:26

Beitrag von hilby »

fehlt vielleicht ein

update ();

im itemChange() des graphicItems....

ich habe eine ähnliche konstruktion, und da funzt es prima....


greetz,
derHilby
Antworten