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>