Hello
This is a little XRC test program I'm using to try to figure wxPython out before doing something serious. I have not been able to make it work. When running, I get a frame with a menu, but not the widgets on the panel and not the statusbar. I can do this so everything works without using XRC, but I'd really like to use the XRC approach since it makes layout so much easier. I have spent two days trying to figure this out, and no longer remember all the things I've attempted. Can someone give me a clue here?
Thanks
tst.py:
#!/usr/bin/python
import wx
from wx import xrc
class Main_Frame(wx.Frame):
def __init__(self, parent):
wx.Frame.__init__(self, parent)
res = xrc.XmlResource('tst.xrc')
frame = res.LoadFrame(self, 'frame')
self.SetTitle("Test wxPython Program")
menuBar = res.LoadMenuBarOnFrame(self,"menubar")
self.statusBar = xrc.XRCCTRL(self, 'statusbar')
self.SetStatusBar(self.statusBar)
self.statusBar.SetStatusText("first")
panel = xrc.XRCCTRL(self, 'mainPanel')
mainsizer = panel.GetSizer()
self.txtbox = xrc.XRCCTRL(panel, 'txtbox')
mainsizer.Fit(self)
mainsizer.SetSizeHints(self)
self.CenterOnScreen()
class MyApp(wx.App):
def OnInit(self):
frame = Main_Frame(None)
frame.Show()
return True
if __name__ == '__main__':
app = MyApp(False)
app.MainLoop()
tst.xrc:
<?xml version="1.0" encoding="ascii"?>
<resource>
<object class="wxMenuBar" name="menubar">
<object class="wxMenu" name="menuFile">
<label>&File</label>
<object class="wxMenuItem" name="menuFile_Open">
<label>&Open</label>
<accel>Ctrl - O</accel>
</object>
<object class="wxMenuItem" name="menuFile_Close">
<label>&Close</label>
<accel>Ctrl - C</accel>
</object>
</object>
</object>
<object class="wxFrame" name="frame">
<title>This is my title</title>
<object class="wxStatusBar" name="statusbar">
<fields>1</fields>
</object>
<object class="wxPanel" name="mainPanel">
<object class="wxBoxSizer">
<orient>wxVERTICAL</orient>
<object class="sizeritem">
<object class="wxBoxSizer">
<orient>wxVERTICAL</orient>
<object class="sizeritem">
<object class="wxButton" name="btn1">
<label>button 1</label>
</object>
<flag>wxALL|wxEXPAND</flag>
<border>5</border>
</object>
<object class="sizeritem">
<object class="wxButton" name="btn2">
<label>button 2</label>
</object>
<flag>wxALL|wxEXPAND</flag>
<border>5</border>
</object>
</object>
<flag>wxALL|wxALIGN_CENTRE</flag>
<border>5</border>
</object>
<object class="sizeritem">
<object class="wxBoxSizer">
<orient>wxHORIZONTAL</orient>
<object class="sizeritem">
<object class="wxStaticText" name="label">
<label>Label</label>
</object>
<flag>wxALL|wxALIGN_CENTRE_VERTICAL</flag>
<border>5</border>
</object>
<object class="sizeritem">
<object class="wxTextCtrl" name="txtbox"/>
<flag>wxALL</flag>
<border>5</border>
</object>
</object>
</object>
</object>
</object>
</object>
</resource>