wxPython:XRC
Posted by Ross Wan on 2008/05/03
使用 XRC(xml resources)来构建 wxPython 程序,可以将程序的界面代码从程序代码中分离开来。下面是一个简单的示例,我们加载一个 xml 资源文件(xrc 文件),创建一个带有单个按钮的窗口,并且将事件绑定到按钮上。
#!/usr/bin/python
# xml.py
# xml.py
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.Center()
self.Show(True)
def OnClose(self, event):
self.Close()
app = wx.App()
Xml(None, -1, ‘xml.py’)
app.MainLoop()
下面是 resource.xrc 文件的内容:
<?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>
<resource>
<object class=”wxPanel” name=”MyPanel”>
<object class=”wxButton” name=”CloseButton”>
<label>Close</label>
<pos>15,10</pos>
</object>
</object>
</resource>
使用下面两个方法处理 XRC 文件里已经定义的控件:
- XRCID(resource_name) 取得控件的 id。
- XRCCTRL(resource_name) 取得控件的句柄。
Ross Wan 说
翻译自:The wxPython tutorial