Seite 2 von 2

Verfasst: Montag 23. Februar 2009, 12:38
von mathi
gerold hat geschrieben:Ich kann mir auch vorstellen, dass das Bild beim Öffnen mit ``wx.Icon()`` irgendwie angepasst wird, damit es korrekt angezeigt werden kann. Was genau gemacht wird, ist sicherlich im Quellcode von wxPython ersichtlich. Aber mir fehlt die Motivation, diesen jetzt durchzusehen.
ich hätte die Motivation, nur leider weiß ich nicht, wie ich die Stellen finde....
habe über die Suche nach Dateinamen "icon" nichts gefunden, also müßte die Funktion wx.Icon() wo anders stehen, nur wo???

Gruß Mathi

Verfasst: Montag 23. Februar 2009, 14:00
von mathi
noch eine andere Frage:
img2py kann mit der Option -1 eine Funktion erstellen, um das Icon als wxIcon aufzurufen:

Code: Alles auswählen

from wx.lib.embeddedimage import PyEmbeddedImage

icon = 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=")
geticonData = icon.GetData
geticonImage = icon.GetImage
geticonBitmap = icon.GetBitmap
geticonIcon = icon.GetIcon

leider funktioniert dann aber ein

Code: Alles auswählen

 self.SetIcon(geticonIcon)
nicht, die Fehlermeldung lautet
TypeError: in method 'TopLevelWindow_SetIcon', expected argument 2 of type 'wxIcon const &'
warum das denn, ich dachte ich habe mit

Code: Alles auswählen

geticonIcon = icon.GetIcon
ein IconStream erzeugt ????

edit: dieses Problem hat sich erledigt, mit

Code: Alles auswählen

geticonIcon = icon.GetIcon()
, bringt aber auch nicht die erwünschte Wirkung

Verfasst: Montag 23. Februar 2009, 14:11
von HWK
Der Quellcode steht in C++-Dateien. Die findest Du nur im Source-Code von wxPython, der ja nicht in den Binaries enthalten ist. Dort befinden sich aber mehrere Dateien mit Icon im Namen, z.B. "wxPython-src-2.8.9.2\src\generic\icon.cpp".
MfG
HWK

Verfasst: Montag 23. Februar 2009, 15:12
von mathi
Problem gelöst:

man nehme ein icon.ICO erstelle einen Stream mittels img2py -i icon.ico icon.py

und dann obiges

Code: Alles auswählen

geticonIcon = icon.GetIcon
dann bekommt man das Icon auch für "krumme" Auflösungen :-)