XRCでウィジェットを埋め込む
2009/11/24
wxPython2.8.9.2
-XRCのunknownウィジェットを使う。 -unknownコントロールはXRCCTRLでロードできない。 -AttachUnknownControl('idのテキスト', コントロールウィジェット, 親ウィジェット)を使って埋め込む。 --コントロールウィジェット ⇒ 埋め込むウィジェット --親ウィジェット ⇒ 埋め込まれるウィジェット
PANEL1をFRAME1のUNKNOWN1に埋め込む
import wx
import wx.xrc
def main():
app = wx.App()
res = wx.xrc.XmlResource("unknown.xrc")
frame = res.LoadFrame(None,"FRAME1")
panel = res.LoadPanel(frame,"PANEL1")
res.AttachUnknownControl("UNKNOWN1",panel,frame)
frame.Show()
app.MainLoop()
if __name__ == '__main__':
main()
unknown.xrc
<?xml version="1.0" encoding="utf-8"?>
<resource>
<object class="wxFrame" name="FRAME1">
<title></title>
<object class="wxBoxSizer">
<orient>wxVERTICAL</orient>
<object class="sizeritem">
<object class="unknown" name="UNKNOWN1"/>
<option>1</option>
<flag>wxALL|wxEXPAND</flag>
<minsize>200,200</minsize>
</object>
</object>
</object>
<object class="wxPanel" name="PANEL1">
<object class="wxGridSizer">
<cols>2</cols>
<rows>2</rows>
<object class="sizeritem">
<object class="wxPanel">
<size>30,30</size>
<bg>#80FF00</bg>
</object>
<flag>wxALL|wxEXPAND</flag>
</object>
<object class="sizeritem">
<object class="wxPanel">
<size>30,30</size>
<bg>#FF0000</bg>
</object>
<flag>wxALL|wxEXPAND</flag>
</object>
<object class="sizeritem">
<object class="wxPanel">
<size>30,30</size>
<bg>#FFFF00</bg>
</object>
<flag>wxALL|wxEXPAND</flag>
</object>
<object class="sizeritem">
<object class="wxPanel">
<size>30,30</size>
<bg>#0080FF</bg>
</object>
<flag>wxALL|wxEXPAND</flag>
</object>
</object>
</object>
</resource>