Plattformunabhängige GUIs mit wxWidgets.
mathi
User
Beiträge: 314 Registriert: Dienstag 27. November 2007, 14:30
Donnerstag 13. November 2008, 11:48
Hallo,
entgegen allen Beispielen habe ich ein .bmp als Code vorliegen und möchte es als Icon in den Frame bringen :
meine bisherigen Ergüsse:
CODE AUSGELAGERT:
http://paste.pocoo.org/show/91050/
funktioniert auch nicht
Wo liegt mein Denkfehler?
EDIT by Gerold: Code ausgelager
Zuletzt geändert von
mathi am Dienstag 18. November 2008, 13:41, insgesamt 1-mal geändert.
gerold
Python-Forum Veteran
Beiträge: 5555 Registriert: Samstag 28. Februar 2004, 22:04
Wohnort: Oberhofen im Inntal (Tirol)
Kontaktdaten:
Donnerstag 13. November 2008, 13:24
Hallo mathi!
Und wie sollen wir dieses Beispiel ausprobieren? Das ist der Grund, weshalb ich immer wieder darum bitte, ein funktionierendes/ganzes Beispiel zu posten. Wie soll ich denn wissen, woher du dieses ``PyEmbeddedImage`` bekommst und welche Methoden es hat?
mfg
Gerold
HWK
User
Beiträge: 1295 Registriert: Mittwoch 7. Juni 2006, 20:44
Donnerstag 13. November 2008, 14:32
So habe ich es einmal mit einem in img stehenden, Base64-encodierten GIF-Image gemacht:
Code: Alles auswählen
tmp = wx.ImageFromStream(cStringIO.StringIO(base64.decodestring(img)),
wx.BITMAP_TYPE_GIF)
icon = wx.IconFromBitmap(tmp.Scale(16, 16).ConvertToBitmap())
self.SetIcon(icon)
MfG
HWK
mathi
User
Beiträge: 314 Registriert: Dienstag 27. November 2007, 14:30
Donnerstag 13. November 2008, 14:53
Hallo HWK,
leider komme ich mit Deinem Beispiel nicht weiter (fehlt mir das Wissen).
Mit :
Code: Alles auswählen
icon2 = wx.IconFromBitmap(geticonImage.Scale(16, 16).ConvertToBitmap())
self.SetIcon(icon2)
passiert nichts, aber es kommt auch kein Fehler
gerold
Python-Forum Veteran
Beiträge: 5555 Registriert: Samstag 28. Februar 2004, 22:04
Wohnort: Oberhofen im Inntal (Tirol)
Kontaktdaten:
Donnerstag 13. November 2008, 15:47
Hallo mathi!
Code: Alles auswählen
#!/usr/bin/env python
# -*- coding: iso-8859-15 -*-
import wx
from wx.lib.embeddedimage import PyEmbeddedImage
class MyFirstFrame(wx.Frame):
"""
Erster Frame
"""
def __init__(self, parent = None, id = -1, title = "Erster Frame"):
"""
Frame initialisieren und aufbauen
"""
# Initialisieren
wx.Frame.__init__(self, parent, id, title)
icon_stream = PyEmbeddedImage(
"iVBORw0KGgoAAAANSUhEUgAAACQAAAAkCAIAAABuYg/PAAAAA3NCSVQICAjb4U/gAAAEGUlE"
"QVRIie1WS0srSxCu6emeR2I0JiSKaBa+FSQouAnE4MJf4EIQf4Nu/DWu/AsuxIXg+4EgKi6S"
"nWJioiSZPCaJwzzSfRfNzQk65njlcs65cL/FMExX9Vf1dVX1APwnIAjCL3T7Nn4137+C7wTd"
"2UcQhHaDnxr/eB8eHl5bW8vlcoIgEEIsy6KUfvRhjImiGIlEtra2np+fAWBpaWl2dlbTNMYY"
"ACCECCG2bVNKRVHEGFuWBQCUUowxd8Tz8/Nzc3MrKyulUimTyUSjUcdxXMlkWdY0bXd3N5vN"
"MsYWFhbi8XgwGOTBSZJ0fn4ejUYlSUomkwMDA4FAgC/Jsvz6+rq3t4ebzWYkEqnVaoQQVVV1"
"Xbdt+7PMxsbGCoUCF+fl5WVgYCCfz1NKGWOKovT29jLGGo1GJBLRNA1j3Gw2GWOEkMHBQQBA"
"AKAoCteQEIIQ6iC9JEmcmDGGEEII8e+CIHAZMcaMMUmSJEniq3xJFEUAwAihnZ2diYkJALi5"
"uVldXQ2Hw65nLopiPp8fHR19eHgAgPHxcV3Xh4aGGGOU0re3t9PT03g8bhhGsVjEGCcSCUVR"
"uP7VahUAMKV0eXlZ13VCSDAYnJ6eFkXxHRljjAfY3d1dLBb5x83NTVVVDcOglHK5jo+P/X6/"
"YRhTU1PX19eTk5N8K+749vaGAcAwjEajIctyV1cXADSbTa4ML7P29xYTAFiWZdt2ywYAvF6v"
"YRiGYWCMVVVtbdVy/CE6AGCM27N5x+RaNe90hr+7sH2rFjDXVFEUQkh74P+I9YvACKGTk5NA"
"IEAIeXx8vLi46OnpeRdvJpPxeDwejwdjvLGxcXBw8E0yxtj09LSqqjx9RVF0XW+3IIRUKpX+"
"/n7Lsnp6ejKZzPczo5T6fD7TNAGAUsqPvd2Ct4tpmqZpejyeDnvxzmu1oIsBxvju7s5xHF3X"
"n56eeAO2wKdAKpXSNE3TtMPDw8+6HgDu7+8xxoIgFAqFcrnsklk6nXYc5+zsjAd1dHTUqleO"
"crkci8XC4XC1Wp2cnHSdnBwzMzN8NRQK1et1F7LLy8vLy8sO4gDA9vZ2JBIBAMbYu1DawRhz"
"HIcPFFezTzVph8/nE0Xxi3Xf4XpDnZc56vW6IAgfx9jXaThwIpFYX1/P5XKuiQuCUCqVGGOl"
"UknXddM0CSGdd+xE1tfXhzFeXFy0LMs1NITQ/v7++Pi43++/vb3tUI0/1RlTSkdGRqrV6mdk"
"siwPDQ3xHojFYh0KhLcNv9VcY8L82uSjCNwGICHE6/X6fD6MsSzL/ORck6jVapIkZbNZv9/v"
"qjaybTuVSpmmyWdH+9O2bcdxTNOsVCrJZLJarV5dXYVCoY9MXBKEkKZpyWQynU4Hg0GX3Fsh"
"fPZ39if+v/6emL7E+ifK9T9+O/4Ca6olvzq05dsAAAAASUVORK5CYII="
)
img = wx.ImageFromBitmap(icon_stream.GetBitmap())
img.Rescale(16, 16)
bmp = wx.BitmapFromImage(img)
bmp.SetMaskColour(wx.BLACK)
icon = wx.IconFromBitmap(bmp)
self.SetIcon(icon)
static_bmp = wx.StaticBitmap(self, bitmap = wx.BitmapFromIcon(self.GetIcon()))
def main():
app = wx.PySimpleApp()
first_frame = MyFirstFrame()
first_frame.Show()
app.MainLoop()
if __name__ == "__main__":
main()
Recht kompliziert -- ich weiß.
mfg
Gerold
mathi
User
Beiträge: 314 Registriert: Dienstag 27. November 2007, 14:30
Donnerstag 13. November 2008, 16:31
Hallo Gerold,
Danke, aber ich glaube jetzt haben wir uns komplett Mißverstanden, (meine Schuld, habs im 1. Post wirklich nicht richtig erklärt)
ich wollte oben in der Titelleiste links neben "Erster Frame" das kleine Bildchen haben, leider ist das bei Deinem Beispiel auch nicht der Fall (zumindest wenn ich es starte)
gerold
Python-Forum Veteran
Beiträge: 5555 Registriert: Samstag 28. Februar 2004, 22:04
Wohnort: Oberhofen im Inntal (Tirol)
Kontaktdaten:
Donnerstag 13. November 2008, 16:46
mathi hat geschrieben: Titelleiste links neben "Erster Frame"
Hallo mathi!
Bei mir sieht das so aus:
mfg
Gerold
mathi
User
Beiträge: 314 Registriert: Dienstag 27. November 2007, 14:30