PNG-Transparenz

Plattformunabhängige GUIs mit wxWidgets.
Benutzeravatar
gerold
Python-Forum Veteran
Beiträge: 5555
Registriert: Samstag 28. Februar 2004, 22:04
Wohnort: Oberhofen im Inntal (Tirol)
Kontaktdaten:

Ich habe keine Ahnung, wie diese Buttons generiert werden, aber evt. passt dieser Link zu diesem Thema: http://xoomer.alice.it/infinity77/main/ ... utton.html

mfg
Gerold
:-)
http://halvar.at | Kleiner Bascom AVR Kurs
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
Benutzeravatar
Sr4l
User
Beiträge: 1091
Registriert: Donnerstag 28. Dezember 2006, 20:02
Wohnort: Kassel
Kontaktdaten:

Hallo ich kämpfe ja auch gerade damit wx / PNG.

MaskColour #000000 ist nicht ideal, aber der mir die Grafiken erstellt ist das durch eine Gameengine (3dGS) gewohnt das #000000 Transparent ist.

Manchmal funktioniert bei mir Transparenz und manchmal nicht, die Bilder die ich geschickt bekomme ( mit Adobe Photoshop) erstellt funzktionieren 100%, dann habe ich jedoch das Bild nach bearbeitet mit Gimp und habe nun so eine weissen Rand den ich nicht mehr weg bekomme.
So wie ein Pixel einmal rund ums Bild wird mit default BackgroundColour gemacht, alles weil ich da mit Gimp nachgearbeitet habe.
Halbtransparenz geht nur auf einem wx Bild aber nicht da wo es auf den DesktopHintergrund geht.
Also am besten geht es bei mir über die MaskColour.
Bei meine Buttons muss ich allerdings sagen habe ich nur Transparenz (GIMP) und es geht auch siehe das Close X oben und Login Button

Screenshot:
Bild

Code der das Bild erzeugt, auf das ich meine Buttons setze:

Code: Alles auswählen

class Frame(wx.Frame):
    def __init__(self):
        wx.Frame.__init__(self, None, -1, "MK3d Loader", style = wx.FRAME_SHAPED | wx.SIMPLE_BORDER )

        panel = wx.Panel(self)
        self.panel = panel
        self.panel.SetBackgroundColour("#4F3217")
        self.panel.Bind(wx.EVT_PAINT, self.OnPaint)
        .........
        ....

    def OnPaint(self, evt):
        dc = wx.PaintDC(self.panel)
        self.bmp = wx.Bitmap("panel.png")
        self.SetClientSize((self.bmp.GetWidth(), self.bmp.GetHeight()))
        dc.DrawBitmap(self.bmp, 0,0, True)
        self.bmp.SetMaskColour("#FFFFFF")
        self.SetShape(wx.RegionFromBitmap(self.bmp))
PS: Wie man sieht bekomme ich die BackgroundColour von den ListBoxen nicht gesetzet, warum?

Code: Alles auswählen

        self.packet_install = wx.ListBox(self.panel, -1, (538, 169), (122, 121), ["lol","lal"])
        self.packet_install.SetBackgroundColour("#4F3217")
*edit*
habe ListBox gegen ListCtrl getauscht und alles geht.
Antworten