Seite 1 von 1

QLabel - Darstellungsfehler bei setMovie mit mng Datei

Verfasst: 30. Juli 2007 12:27
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

Verfasst: 1. August 2007 08:27
von Ethan
Könnte das eventuell ein bug sein von Qt?

Sonst wäre ja vielleicht schon der ein oder andere Tipp aufgetaucht.

Verfasst: 1. August 2007 09:16
von upsala
Schon mal eine neuere Qt-Version getestet, ob dort der Fehler auch auftritt?

Verfasst: 6. August 2007 09:34
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.

Verfasst: 6. August 2007 09:46
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...

Verfasst: 6. August 2007 09:49
von upsala
Ich denke, das ist vorerst hinfällig: Task-Tracker

Verfasst: 6. August 2007 14:46
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.

Verfasst: 8. August 2007 09:49
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.