Ok, der vollstaendigkeithalber werde ich hier mal meine Loesung praesentieren, falls sich jemand etwas aehnliches mal gefragt hat.
Einen PlateButton in der XRC Datei selber zu haben geht wohl nicht, man kann aber einen Platzhalter einfuegen und dann mittels XmlResource.AttackUnknownControl das gewuenschte Widget im Nachhinein einfuegen. Als Beispiel, das was ich gemacht habe:
In der XRC Datei habe ich ein objekt mit der class unknown eingefuegt:
Code: Alles auswählen
<object class="unknown" name="A_Name">
<variables</variables>
</object>
in meinem Frame habe ich dann das widget, in meinem Fall den PlateButton mit Bild und Toggle eingefuegt und an events gebunden. Im Uebrigen habe ich das machen wollen, weil wxpython keinen ToggleState bei Bitmapbuttons erlaubt.
Code: Alles auswählen
class MyFrame(wx.Frame):
def __init__(self, parent):
self.res = xrc.XmlResource("my_xrc_file.xrc")
self.frame = self.res.LoadFrame("MyFrame")
imageFile = "/a/path/to/your/file"
png = wx.Image(imageFile, wx.BITMAP_TYPE_ANY).ConvertToBitmap()
self.MyBtn = wx.lib.platebtn.PlateButton(self.frame, bmp=png,
style=platebtn.PB_STYLE_TOGGLE|platebtn.PB_STYLE_DEFAULT)
self.PlateBtn = parent.res.AttachUnknownControl("MyBtn",
self.MyBtn, self.frame)
self.MyBtn.Bind(wx.EVT_TOGGLEBUTTON, self.on_toggle)
Ich hoffe, das leuchtet ein wenig ein. Falls jemand Verbesserung hat, immer her damit. Mein
PEP 8 Naming chaos ist mir im Uebrigen bewusst, nur leider verhasple ich mich immer wieder auf Grund der Diskrepanz von wxpython naming mit der von Python selbst (also PEP

. Also bitte nur drauf hinweisen und nicht niedermachen.