wxGlade - Frame immer mit SubClass...

Plattformunabhängige GUIs mit wxWidgets.
Antworten
Benutzeravatar
jens
Python-Forum Veteran
Beiträge: 8502
Registriert: Dienstag 10. August 2004, 09:40
Wohnort: duisburg
Kontaktdaten:

wxGlade markiert ja einen Frame immer mit SubClass:

Code: Alles auswählen

<object class="wxFrame" name="frame_1" subclass="MyFrame">
Kann mir jemand erklären, was subclass überhaupt bedeutet und vor allem, wie man als XRC-Resource damit umgeht???

Ich kenne nur die variante, bei wx.xrc.XmlResource() als Argument noch wx.xrc.XRC_NO_SUBCLASSING anzugeben... Dann scheint alles gut... Wenn ich es weglasse bekomme ich einen Fehler:
Subclass 'MyFrame' not found for resource 'frame_1', not subclassing!
fdj

jens hat geschrieben:wxGlade markiert ja einen Frame immer mit SubClass:

Code: Alles auswählen

<object class="wxFrame" name="frame_1" subclass="MyFrame">
Kann mir jemand erklären, was subclass überhaupt bedeutet und vor allem, wie man als XRC-Resource damit umgeht???

Code: Alles auswählen

Subclass 'MyFrame' not found for resource 'frame_1', not subclassing!
Wenn du ein Frame mit subclass="MyFrame" lädst, versucht xrc automatisch eine Klasse mit dem Namen "MyFrame" im aktuellen Namespace zu finden und nimmt diese anstelle des normalen wx.Frame.

So kannst du recht einfach eine eigene Frame-Klasse, die ihre Controlls initialisiert, Events verknüpft etc. schreiben und diese trotzdem via xrc laden. Dabei legt name="frame_1" die ID fest, mit der Du dieses Control später in Python ansprechen kannst (via wx.xrc.XRCCTRL, liefert eine Referenz auf das Control, und wx.xrc.XRCID, dass die wxPython-ID zurück gibt).

Befindet sich diese Klasse ein einer eigenen Datei, die du z.B. mit

Code: Alles auswählen

import myFrame
importierst, so muss die Zeile in der XML-Datei so aussehen:

Code: Alles auswählen

<object class="wxFrame" name="frame_1" subclass="myFrame.MyFrame">
Vielleicht hilft diese späte Antwort ja noch jemandem ;)

Dave
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Hallo Dave, willkommen im Forum!
fdj hat geschrieben:Vielleicht hilft diese späte Antwort ja noch jemandem ;)
Mhh, das ist ja ein nettes Feature und eine gute Erklärung.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
Antworten