Seite 1 von 1

Bild wird unter Windows erst nach Minimierung angezeigt

Verfasst: Montag 16. Juli 2012, 16:01
von AllesMeins
Hi,

ich versuche gerade ein Script, dass ich für Linux geschrieben habe, auch unter Windows zum Laufen zu bringen. Leider funktioniert das nicht vollständig. Ich versuche mit wx.StaticBitmap ein Bild anzuzeigen. Vom Bild werden aber nur 2 kleine (etwa 10x10px große) Quadrate angezeigt. Erst wenn ich das Fenster Minimiere und dann wiederherstelle wird das Bild angezeigt. Alternativ kann ich auch das Fenster verkleinern - auf den Flächen die dann unsichtbar waren wird beim wieder vergrößern das Bild auch korrekt angezeigt... An sich mache ich zum Bild anzeigen nur das folgende:

Code: Alles auswählen

self.overlayPicture = wx.Image("overlay.gif", wx.BITMAP_TYPE_GIF)
[...]
overlayPicture = self.overlayPicture.Scale(overlaySize[0],overlaySize[1])
self.guiElements["overlay"] = wx.StaticBitmap(self, -1, wx.BitmapFromImage(overlayPicture), (pos[0], pos[1])) 
Wie gesagt: Unter Linux funktioniert der Code einwandfrei. Unter WindowsXP nicht. Auf beiden Systemen verwende ich Python 2.7.3

Re: Bild wird unter Windows erst nach Minimierung angezeigt

Verfasst: Montag 16. Juli 2012, 16:46
von Dav1d
Probier mal `self.Layout()`

Re: Bild wird unter Windows erst nach Minimierung angezeigt

Verfasst: Dienstag 17. Juli 2012, 22:33
von AllesMeins
Danke für die Antwort. Leider konnte ich bisher noch nichts damit anfangen. Habe schon ein paar Stellen, die mir sinnvoll erschienen, ausprobiert, aber es hat absolut nichts geändert...
Wo genau müsste das denn hin?

EDIT:
Ich habe einen Teil des Problems gelöst. Und ein neues dadurch bekommen...
Der Fehler war, dass ich self.Show() ausversehen zu weit vorne im Code aufgerufen habe (bevor ich das Bild gezeichnet hab). Wenn ich self.Show() nach dem zeichnen des Bildes aufrufe funktioniert es. Nun möchte ich aber das Bild dynamisch ändern können. Sprich: Erst auf Knopfdruck soll das Bild gezeichnet werden. Damit liegt das Zeichnen des Bildes aber natürlich wieder nach dem Aufruf von self.Show() und damit habe ich wieder das gleiche Problem. Ein erneutes Aufrufen von self.Show() bringt leider auch kein Lösung. Wie macht man das richtig?

Re: Bild wird unter Windows erst nach Minimierung angezeigt

Verfasst: Mittwoch 18. Juli 2012, 09:26
von Dav1d
Probier mal ein `self.Layout` und ein `self.Refresh` nach dem Neuzeichnen.

Re: Bild wird unter Windows erst nach Minimierung angezeigt

Verfasst: Mittwoch 18. Juli 2012, 10:37
von AllesMeins
Super, dank dir! Das hat funktioniert!