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
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