Ich habe eine Videoplayer programmiert.
Via QTimer und QPaintEvent lasse ich die Frames über den Bildschirm laufen.
Leider ist meine CPU Auslstung beim Öffnen des Players direkt auf 100%. Auch ohne ein Video abzuspielen.
Wenn ich in der Funktion QPaintEvent das update() weglasse kann ich diesen Effekt verhindert - habe aber natürlich dann kein Videobild mehr.
Kann mir wer einen Tipp geben wie ich das Problem löse?
Beste Grüße
Systemleistung durch update()in QPaintEvent auf 100%
-
Christian81
- Beiträge: 7319
- Registriert: 26. August 2004 14:11
- Wohnort: Bremen
- Kontaktdaten:
Das update() triggert ein paintEvent() - Aufruf - was im Endffekt zu nur Loop führt. Dein Konzept passt also nicht so ganz. Der QTimer kann update() aufrufen und in paintEvent() kannst Du dann zeichnen. Aber innerhalb von paintEvent() ein update() oder repaint() aufrufen ist tötlich.
MfG Christian
'Funktioniert nicht' ist keine Fehlerbeschreibung
'Funktioniert nicht' ist keine Fehlerbeschreibung
Ok! Danke für die Anwort.
Ich habe das update() aus der QPaintEvent Funktion rausgenommen und je in meine Funktionen (zb. cannyfilter, sobelfilter, usw.) reinsetzt mit denen ich mein Video laufen bzw. bearbeiten lasse.
Der Player läuft - die CPU geht jetzt auf 100% nur wenn das Video läuft.
Das ist jedoch normal und richtig so, oder?
Ich habe das update() aus der QPaintEvent Funktion rausgenommen und je in meine Funktionen (zb. cannyfilter, sobelfilter, usw.) reinsetzt mit denen ich mein Video laufen bzw. bearbeiten lasse.
Der Player läuft - die CPU geht jetzt auf 100% nur wenn das Video läuft.
Das ist jedoch normal und richtig so, oder?
-
Christian81
- Beiträge: 7319
- Registriert: 26. August 2004 14:11
- Wohnort: Bremen
- Kontaktdaten: