2 Stimmen

wx.StaticBitmap oder wx.DC: Was ist besser für ständig wechselnde Bilder geeignet?

Ich möchte eine Python-GUI haben, die verschiedene Bilder aus Dateien lädt. Ich habe viele Beispiele für das Laden eines Bildes mit etwas Code wie gesehen:

img = wx.Image("1.jpg", wx.BITMAP_TYPE_ANY, -1)
sb = wx.StaticBitmap(rightPanel, -1, wx.BitmapFromImage(img))
sizer.Add(sb)

Es scheint für ein Bild geeignet zu sein, das während der gesamten Lebensdauer des Programms bestehen bleibt. Ich konnte keine elegante Möglichkeit finden, Bilder damit zu löschen/neu zu laden. Wäre die Verwendung einer wx.DC eine bessere Idee für meine Anwendung?

1voto

Anurag Uniyal Punkte 81337

Wenn Sie große Bilder haben, die sich schnell ändern, oder wenn Sie in Zukunft einen benutzerdefinierten Effekt wünschen, ist es besser, ein eigenes Steuerelement zu schreiben und mit paintDC zu malen, und es ist nicht so schwer.

Wenn Sie Ihre eigene Zeichnung anfertigen, können Sie die Skalierung korrigieren, Flimmern vermeiden und eventuell ein Bild mit einem anderen überblenden, wenn Sie möchten :)

0voto

Toni Ruža Punkte 7254

Sie müssen nicht die StaticBitmap können Sie einfach eine andere Bitmap darauf setzen, indem Sie deren SetBitmap Methode.

Wenn das neue Bild andere Abmessungen hat, müssen Sie wahrscheinlich eine explizite Layout aufrufen, damit sich die Sizer anpassen.

0voto

Spacen Jasset Punkte 830

Ich habe hier gelesen: http://docs.wxwidgets.org/trunk/classwx_static_bitmap.html

"Die nativen Implementierungen auf einigen Plattformen sind nur für die Anzeige der kleinen Symbole in den Dialogfeldern gedacht. Insbesondere unter Windows 9x ist die Größe der Bitmap auf 64*64 Pixel begrenzt."

Das könnte ein Problem sein. Wenn Sie einen DC verwenden, müssen Sie ihn möglicherweise "doppelt puffern", oder er kann beim Neuzeichnen, Ändern der Größe oder Aktualisieren flackern.

Ansonsten scheint es mir, dass Sie eine "normale" Bitmap verwenden sollten, wenn Sie sie häufig aktualisieren wollen.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X