The idea behind xml resources is to separate the interface from the code of an application. Several GUI builders use this concept for creating interfaces. For example the famous Glade. In our example we create a simple frame window with one button. We load resources from a file, load a panel and bind an event to a button.
なぜXMLリソースを使うのかというと、アプリケーションのソースコードとインターフェースを分離するためです。 いくつかのGUIビルダーは、インターフェースを作るのにこのコンセプトを使用しています。 例としてGladeが有名でしょう。 我々のサンプルでは、ボタン付きのシンプルなウィンドウを作ります。 リソースをファイルから読み込み、パネルを読み込んでからイベントとボタンを関連付けます。
#!/usr/bin/env python import wx import wx.xrc as xrc class Xml(wx.Frame): def __init__(self, parent, id, title): wx.Frame.__init__(self, parent, id, title) res = xrc.XmlResource('resource.xrc') res.LoadPanel(self, 'MyPanel') self.Bind(wx.EVT_BUTTON, self.OnClose, id=xrc.XRCID('CloseButton')) self.Centre() self.Show(True) def OnClose(self, event): self.Close() app = wx.App() Xml(None, -1, 'xml.py') app.MainLoop()
<?xml version="1.0" ?> <resource> <object class="wxPanel" name="MyPanel"> <object class="wxButton" name="CloseButton"> <label>Close</label> <pos>15,10</pos> </object> </object> </resource>
Date: 2010-10-21 06:21:35 JST
HTML generated by org-mode 6.21b in emacs 23