Seite 1 von 1

wxGlade - Frame immer mit SubClass...

Verfasst: Mittwoch 8. Dezember 2004, 21:52
von jens
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!

Re: wxGlade - Frame immer mit SubClass...

Verfasst: Sonntag 3. Juli 2005, 13:25
von 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

Re: wxGlade - Frame immer mit SubClass...

Verfasst: Sonntag 3. Juli 2005, 13:36
von Leonidas
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.