Erstmal danke für die Antwort franzf. Aber da´muss ich wohl weiter ausholen:
Ja, die 25fps sind nötig. Ich habe jetzt herausgefunden, dass der Renderthread 10% Rechenkapazität benötigt. Der Mainthread zum erstellen der Anzeige 50%. Das liegt daran, dass ich ein qwt-Diagramm zur Anzeige verwende. In diesem überlagere ich die umgerechneten Bilder per Alfa-Kanal. Diese Rechnerei kostet natürlich.
Ich konnte das Übergeben des QImage tatsächlich vermeiden, indem ich noch im Renderthread das Image in ein Pixmap wandele, und aus dem Mainthread heraus renderthread->myPixmap abrufe. Gute Idee. Die Variante mit dem QImage war vom Mandelbrot-Example inspiriert (abgeguckt).
Der Stand ist also, dass ich
A) Im Renderthread
1) Das Bild grabbe und es geeignet umrechne
2) Aus den Bilddaten (zeilenweise) Diagrammkurven erzeuge (Vectoren mit double-Werten)
3) dann emit() aufrufe, damit der Mainthread weiss, dass fertig gerechnet wurde
B) Im Mainthread
1) Die thumbnail-Anzeige des pics auf einem Label mit besagtem Pixmap aktualisiert wird
2) Die Diagramme durch
aktualisiert werden. Dieses replot() kostet die Kraft.
Bei qwt-Diagrammen funktioniert das so, dass man beim Erstellen des Diagramms durch setRawData() eine flache Kopie der Daten anlegt. Deshalb muss bei replot() auch nichts kopiert werden. Ich beschreibe also im Renderthread direkt den angelegten und der Kurve zugewiesenen Speicher.
Trotzdem dauert das replot() lange, denn ich habe den Kurven ein
zugewiesen. Also Farbe mit transparenz. Diese muss natürlich berechnet werden. Und diese Rechnerei ist es, die ich gerne aus dem Mainthread herausgehalten hätte. Kein Problem, wenn der Rechner an der K#!*#-Grenze arbeitet, aber die Knöpfe sollten sich weiterhin betätigen lassen.