3.4 KiB
3.4 KiB
wxPython:用 XRC 创建网格
原文:https://www.blog.pythonlibrary.org/2013/07/24/wxpython-creating-a-grid-with-xrc/
我最近试图帮助某人(在 wxPython 邮件列表上)弄清楚如何通过 XRC 使用网格小部件(wx.grid.Grid)。这应该很简单,但是如果您运行下面的代码,您会发现一个奇怪的问题:
import wx
from wx import xrc
########################################################################
class MyApp(wx.App):
def OnInit(self):
self.res = xrc.XmlResource("grid.xrc")
frame = self.res.LoadFrame(None, 'MyFrame')
panel = xrc.XRCCTRL(frame, "MyPanel")
grid = xrc.XRCCTRL(panel, "MyGrid")
print type(grid)
grid.CreateGrid(25, 6)
sizer = wx.BoxSizer(wx.VERTICAL)
sizer.Add(grid, 1, wx.EXPAND|wx.ALL, 5)
panel.SetSizer(sizer)
frame.Show()
return True
if __name__ == "__main__":
app = MyApp(False)
app.MainLoop()
您会注意到,当您运行这个命令时,输出的类型是“wx”。_windows。ScrolledWindow”,不是网格对象。因此,您将得到以下回溯结果:
AttributeError: 'ScrolledWindow' object has no attribute 'CreateGrid'
File "c:\Users\mdriscoll\Desktop\xrcGridDemo.py", line 26, in app = MyApp(False)
File "C:\Python26\Lib\site-packages\wx-2.8-msw-unicode\wx\_core.py", line 7981, in __init__
self._BootstrapApp()
File "C:\Python26\Lib\site-packages\wx-2.8-msw-unicode\wx\_core.py", line 7555, in _BootstrapApp
return _core_.PyApp__BootstrapApp(*args, **kwargs)
File "c:\Users\mdriscoll\Desktop\xrcGridDemo.py", line 14, in OnInit
grid.CreateGrid(25, 6)
现在你可能想知道 XRC 文件里有什么,以下是它的内容:
`