[gelöst] Frame-Icon Problem

Plattformunabhängige GUIs mit wxWidgets.
mathi
User
Beiträge: 314
Registriert: Dienstag 27. November 2007, 14:30

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
mathi
User
Beiträge: 314
Registriert: Dienstag 27. November 2007, 14:30

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
Zuletzt geändert von mathi am Montag 23. Februar 2009, 14:15, insgesamt 2-mal geändert.
Benutzeravatar
HWK
User
Beiträge: 1295
Registriert: Mittwoch 7. Juni 2006, 20:44

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
mathi
User
Beiträge: 314
Registriert: Dienstag 27. November 2007, 14:30

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 :-)
Antworten