Ich bin noch recht neu in Qt und hoffe das Ihr mir bei ein paar Problemen helfen könnt (oder in die richtige Richtung stoßen).
Ich möchte eine kleine Animation machen bei der ich auf einem png-Hintergrund ein zweites png bewegen möchte (z.B. ein Kreis als Hintergrund und ein Zeiger der sich dreht). Das habe ich auch schon über PaintEvent mit einem QPainter in einem QWidget hinbekommen.
Nun möchte ich das ganze mehr aufsplitten um die einzelnen Aufgaben zu verteilen und um das Objektorientierte Programmieren besser ausnutzen. Dazu wollte ich diesselben Funktionen auf eine Basisklasse und eine davon abgeleitete Klasse aufteilen.
Die Basisklasse soll alle starren Dinge erledigen (Fenstergröße, Hintergrund, usw..) und die abgeleitete Klasse dann das animierte Objekt (der Zeiger). Hintergrund für diese Herangehensweise: später möchte ich andere abgeleitete Klassen machen, die andere Objekte in dem Kreis drehen/bewegen. Dabei möchte ich aber immernoch die Kontrolle darüber haben, damit ich z.B. spontan die Farbe ändern kann.
Soweit meine Überlegungen. Nun habe ich das Problem das die abgeleitete Klasse das im PaintEvent der Basisklasse gezeichnete Hintergrundbild wieder übermalt. Auch ein Aufruf Basisklasse::update() hatt mir da nicht weiterhelfen können.
Kennt Ihr ein solches Problem? Wie kann ich das in der basisklasse gezeichnete Bild dauerhaft anzeigen und sozusagen "versiegeln", sodass ich noch darauf zeichnen kann, aber das Bild immer da bleibt?
Desweiteren bin ich mir nicht sicher ob QWidget dafür die beste Wahl ist. Hat jemand von euch erfahrung mit solchen Animationen? Gibt es einen besseren Weg?
Ich möchte das ganze später so weit führen dass ich auf einer Grundfläche mehrere eigene Widgets anzeige und diese alle voneinander unabhängig animieren (deswegen die aufsplittung. Basisklasse + abgeleitete Klasse = ein Widget). So etwas wie eine Ofenanzeige oder ein Amaturenbrett (wäre ja dann sehr wandelbar)
Ich hoffe ich habe euch nun kein Ohr abgekaut