2 synchrone QPainter-Animationen in versch. Qt Widgets - eins will nicht
-
Hallo Qt'ler,
eine kurze Einleitung: Mein Hauptfenster hat eine QGraphicsScene, in dem ich wiederum ein ("unsichtbares") Widget habe, auf das ein QPainter auf Befehl des Nutzers eine Folge von Bildern projiziert, räumlich ausgerichtet, so dass es zu den restlichen Inhalten der Graphicsscene passt. Diese etwas ungewöhnliche Lösung ist nötig, da ich einzelne Pixel aus einer Gruppe von mehrere tausend bis 1.000.000 nach vorheriger Berechnung triggern muss. Diese Variante hat sich als die (bisher) beste bewährt.
Simultan soll zu dieser Animation in einem Nebenwidget eine auf den Grafiken im Hauptfenster basierende Animation abgespielt werden. Die ergebnisse hierfür liegen ebenfalls vor und müssen nur abgefragt werden. Die Animation wird wieder über QPainter direkt auf dem Widget übernommen, diesmal handelt es sich jedoch um die Zeichnung eines Polygons.
Synchronisiert werden sollen diese beiden Animationen über die Frame-Nummer, die um eins hochgesetzt wird bevor über Repaint() die paintEvents der jeweiligen Widgets aufgerufen werden.
Für das Hauptfenster->GraphicsScene->widget funktioniert das wunderbar. Jedes Frame wird angezeigt.
Das "alleinstehende" Widget kommt da irgendwie nicht hinterher. Zwar wird das Paintevent immer schön aufgerufen, nur scheint es nicht schnell genug hinterherzukommen mit dem Zeichen (oder so?)
Welche Techniken zur Synchronanimation gibt es? Timer? Mehr Leistung durch OpenGL?
Grüße
-
Also OpenGL bringt dir da sicher was, auch würde es sinn ergeben, sowas wie doublebuffering zu nutzen.
Evtl. kannst du auch auf eine PixMap zeichnen lassen, um dann nur die Pixmap noch blitten zu müssen in OnPaint.
Die Pixmaps könntest du dann gemeinsam in einem eigenen Thread sogar zeichnen lassen.