Alte zeichnung mit neuer überzeichnen

Verschiedenes zu Qt
Antworten
gooze
Beiträge: 24
Registriert: 2. März 2009 09:49

Alte zeichnung mit neuer überzeichnen

Beitrag von gooze »

Hallo,

ich habe für die folgende Aufgabenstellung gerade keine Lösung. Vielleicht sehe ich gerade den Wald vor lauter Bäumen nicht und Ihr könnt mir weiterhelfen.

Ich möchte aus vielen einzelnen drawArc's ein Tortenstück zusammenbasteln. Ein Pie kann ich nicht nehmen, da jedes Arc eine andere Farbinfo hat. Nun möchte ich dieses, mit den Arcs gezeichnete Kreissegment stehen lassen und und nach ein paar ms etwas gedreht erneut wieder ein Kreissegment zeichnen.
Mache ich es herkömmlich, dann löscht er beim Neuzeichnen ja das alte Kreissegment und ich habe ein rotierendes Segment. Ich möchte aber alle alten behalten und nur dann überzeichnen wenn ich wieder an der alten Position bin.

Also quasi sowas wie ein Radarbildschirm.

Das Kreissegment aus den Arcs ist kein Problem, das habe ich schon realisieren können.

Nur wie schaffe ich es, dass alle vorher einmal gezeichneten Segmente beibehalten werden, ohne sie jedesmal neu zeichnen zu müssen?

gooze
franzf
Beiträge: 3114
Registriert: 31. Mai 2006 11:15

Beitrag von franzf »

Es bleibt dir wohl nichts anderes übrig, als alle bisherigen Kreise nochmal zu zeichnen. Das machst du ja im paintEvent. Du weißt um wie viel Grad dein letzter Kreis gedreht ist. Dann weißt du auch, wie viele Kreise du brauchst und malst den Kreis halt in ner Schleife immer wieder, nur leicht gedreht.

Alternativ könntest du auf QGraphicsView umschwenken und dir einen "RadarSegmentItem" von QGraphicsItem ableiten. Und mit jedem Ablaufen des Timers fügst du ein neues Item zu deiner Scene hinzu, gedreht natürlich.
Wenn du eine "Umdrehung" hinter dir hast, einfach alle Items löschen und von vorne anfangen.

Grüße
Franz
Antworten