[gelöst] Icon.bmp (als Code) in Frame einfügen

Plattformunabhängige GUIs mit wxWidgets.
Antworten
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.
Benutzeravatar
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
:-)
http://halvar.at | Kleiner Bascom AVR Kurs
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
mathi
User
Beiträge: 314
Registriert: Dienstag 27. November 2007, 14:30

Donnerstag 13. November 2008, 14:24

Hallo Gerold,

Entschuldigung, ist natürlich richtig, ich habe mir erlaubt ein Beispiel (ich glaube von Dir:-)) auszukramen und dort meine Idee einzubauen:

Mein Ziel ist es, in jedem Frame (parent und child) das "icon" anzuzeigen, daher habe ich eine .jpg mit img2py codiert und eingefügt.

CODE AUSGELAGERT: http://paste.pocoo.org/show/91051/

aber das möchte ich nicht, weil: http://www.python-forum.de/topic-16680.html

EDIT by Gerold: Code ausgelagert
Benutzeravatar
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 :?:
Benutzeravatar
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
:-)
http://halvar.at | Kleiner Bascom AVR Kurs
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
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)
Benutzeravatar
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:

Bild

mfg
Gerold
:-)
http://halvar.at | Kleiner Bascom AVR Kurs
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
mathi
User
Beiträge: 314
Registriert: Dienstag 27. November 2007, 14:30

Donnerstag 13. November 2008, 19:46

stimmt, jetzt gehts, komisch, mir war, als hätte ich es nur im Frame gesehen. Egal, es kappt..... 8) 8) 8) :D

SUPER, vielen Dank.
Antworten