Hi,
hat einer von euch eine Ahnung, ob und wie man einen Platebutton (wx.lib.platebtn.PlateButton) in eine XRC datei einfügt?
Bis jetzt habe ich nur widgets nehmen können, die es auch in wxWidgets gibt und ich denke, der PlateButton ist "custom-made".
Ich habe es dann auch mal mit XmlResourceHandler versucht, aber da bin ich schon an der Demo gescheitert, weil ich aus der leider nicht wirklich schlau werde .
Jedwede Hilfe oder Tipps sind willkommen. Danke euch allen schonmal.
Nebelhom
wx.lib.platebtn in XRC?
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:
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.
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.
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>
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)