QLabel - Darstellungsfehler bei setMovie mit mng Datei

Alles rund um die Programmierung mit Qt
Antworten
Ethan
Beiträge: 10
Registriert: 14. Mai 2007 09:02

QLabel - Darstellungsfehler bei setMovie mit mng Datei

Beitrag von Ethan »

Hallo,

ich habe vor kurzem versucht in einem QLabel eine .mng Animation abzuspielen. Das .mng stelle eine "pulsierende" Maschine dar und hatte den Hintergrund transparent (pulsierend = die Maschine wird ein paar Bilder lang breiter und dann wieder dünner)

Dabei trat ein seltsamer Effekt auf:
ist die Maschine gerade dünner geworden, das heißt das aktuelle Bild wurde in der Breite verkleinert, hat man *dahinter* noch das breitere Bild gesehen, welches in der Animation vor dem aktuellen kam.

Also auf gut deutsch: die Transparenz war nicht richtig, da er alle Animationsbilder übereinander schmiert, anstatt erst den Hintergrund zu löschen und dann das aktuelle Bild zu zeichnen.

Meine gescheiterten Lösungversuche sahen so aus:

Code: Alles auswählen

ui.m_lblvmAnimation->setBackgroundMode(Qt::TransparentMode);
oder

Code: Alles auswählen

ui.m_lblvmAnimation->setAutoFillBackground(true);
oder eigenes QLabel custom Widget:

Code: Alles auswählen

void qtaAnimationLabel::paintEvent(QPaintEvent *pe)
{
	QPainter painter(this);
	//painter.setBackgroundMode(Qt::TransparentMode); bringt nix
	//painter.setBackgroundMode(Qt::OpaqueMode);
	//painter.setCompositionMode(QPainter::CompositionMode_Clear);
	
	/*QPixmap alpha(m_movie->currentPixmap());
    QPixmap alphacopy = alpha;
    alphacopy.setMask(alphacopy.createHeuristicMask());*/

	painter.fillRect(0,0,71,59,QBrush(Qt::SolidPattern));
	painter.drawPixmap(0,0,m_movie->currentPixmap());
}
Mittlerweile weiß ich nicht mehr weiter, warum man den Hintergrund in allen Farben und Mustern ausmalen, aber nicht diesen seltsamen Fehler beheben kann.

Ich wäre SEHR froh wenn jemand weiter wüsste!

PS: Qt Version 4.1.4
Ethan
Beiträge: 10
Registriert: 14. Mai 2007 09:02

Beitrag von Ethan »

Könnte das eventuell ein bug sein von Qt?

Sonst wäre ja vielleicht schon der ein oder andere Tipp aufgetaucht.
upsala
Beiträge: 3946
Registriert: 5. Februar 2006 20:52
Wohnort: Landshut
Kontaktdaten:

Beitrag von upsala »

Schon mal eine neuere Qt-Version getestet, ob dort der Fehler auch auftritt?
Ethan
Beiträge: 10
Registriert: 14. Mai 2007 09:02

Beitrag von Ethan »

Mh nein noch nicht.
Aber viel wird mir nicht mehr übrig bleiben wies aussieht, ist halt nur ein größeres Projekt wo ich nicht ohne weiteres umsteigen darf/kann.
Christian81
Beiträge: 7319
Registriert: 26. August 2004 14:11
Wohnort: Bremen
Kontaktdaten:

Beitrag von Christian81 »

Dann teste es doch aber einfach mal - sollte doch nicht so schwer sein die aktuellest Qt-Version kurz zu installieren und ein kleines Testproggie zu schreiben...
MfG Christian

'Funktioniert nicht' ist keine Fehlerbeschreibung
upsala
Beiträge: 3946
Registriert: 5. Februar 2006 20:52
Wohnort: Landshut
Kontaktdaten:

Beitrag von upsala »

Ich denke, das ist vorerst hinfällig: Task-Tracker
Zandru
Beiträge: 84
Registriert: 29. Mai 2007 15:35

Beitrag von Zandru »

2007-05-16 15:11 - Resolution set to 'Fixed'
2007-05-16 15:11 - Version for fix set to '4.4.0 (Next Minor Release)'

d.h. es wird erst mit Version 4.4 gefixed sein. Falls du keine Snapshot-Version von 4.4 benutzen willst (vermutlich voll bugs) siehst du leider erstmal ziemlich alt aus.
Ethan
Beiträge: 10
Registriert: 14. Mai 2007 09:02

Beitrag von Ethan »

Das hätte mir viel Arbeit gespart, hätte ich das vorher gesehen ;)

Vielen Dank für die Antworten, jetzt lass ich mir halt doch was anderes einfallen.
Antworten