merkwürdiges Problem: schwarzer Hintergrund in QWidget/Backg

Alles rund um die Programmierung mit Qt
Antworten
jr0
Beiträge: 2
Registriert: 11. November 2008 18:11

merkwürdiges Problem: schwarzer Hintergrund in QWidget/Backg

Beitrag von jr0 »

Hallo Forum!

Ich habe ein äusserst merkwürdiges Problem mit Qt4.4.3. Ich habe ein QWidget geschrieben mit einem Hintergrundbild. Ich habe mein Programm auf folgenden Plattformen ohne Problem statisch gebuildet:

linux x86_64 (debian lenny)
Os X
Windows

Nun, wenn ich es aber auf linux 32 bit kompiliere, passiert beim Ausführen des Programms folgendes:

Während ganz ganz kurzer Zeit ist das Hintergrundbild zu sehen, und dann wird der ganze Hintergrund schwarz. Die Labels sind dann auch nicht mehr lesbar, da sie auch schwarz sind.

Das Pixmap ist also richtig gesetzt und wird auch einmal auf den Bildschirm gemalt, jedoch sofort wieder mit schwarz übermalt.

Ich habe etliche Posts durchgelesen zum Thema Hintergrundbild, habe etliche Variationen ausprobiert, bin aber immer noch nicht auf eine Lösung gekommen. Beim Ausprobieren ist mir folgendes aufgefallen, was mir noch viel viel komischer scheint:

Wenn ich absichtlich einen falschen QPixmap Konstruktor einbaue (z.B. mit falschem Dateinamen) ist das Hintergrundbild zu sehen, das beim letzten Aufruf des Programms hätte dargestellt werden sollen! Jedoch wird dann das Widget nicht mehr refreshed: Ich habe Labels, die sich ändern, und statt sich zu ändern überschreiben sie sich und es gibt einen rechten Salat auf dem Bildschirm. Beim Verlassen des programms und erneutem Ausführen kommt wider dasselbe Bild wie kurz vor dem Verlassen! Es besteht also eine Verbindung zwischen den zwei Instanzen, obwohl sie nacheinander aufgerufen worden sind!

Beim wieder richtigen QPixmap konstruktor wird alles wider schwarz. Ich habe in meinem QWidget Konstruktor folgenden Code:

Code: Alles auswählen

	
QPixmap bg("background.xpm");
QPalette p(palette());
p.setBrush(QPalette::Background, bg);
setPalette(p);
Der Code ist wahrscheinlich schon richtig, sonst würde es nicht unter den erwähnten 3 Plattformen tadellos funktionieren. Kann mir jemand helfen??

Edit:
In der kurzen Zeit, in der das Hintergrundbild sichtbar ist, sind alle anderen Widgets nicht sichtbar. Sie werden gleichzeitig beim Wechsel auf den schwarzen Hintergrund sichtbar.
jr0
Beiträge: 2
Registriert: 11. November 2008 18:11

Beitrag von jr0 »

Hm. Sehr komisch:

Die kompilierte Binary funktioniert auf einem anderen System! Es muss am kde oder x11 liegen, auf dem ich es kompiliere...

Das Problem äussert sich auch z.B. wenn ich im Designer Elemtente rüberschiebe, dann erscheint ein komisches Artefakt statt des üblichen Abbilds des Widgets...

Somit könnte das problem als solved gelten aber:

Bin ich der einzige der das hat? Die nicht-qt4-Apps haben keine Probleme...
Antworten