>>> import wx
>>> frm = wx.Frame(None, title='FooBar', name='foobar')
>>> frm.Show()
True
>>>
>>> f = wx.FindWindowByName('busted')
>>> print f
None
>>> f = wx.FindWindowByName('foobar')
>>> print f
<wx._windows.Frame; proxy of <Swig Object of type 'wxFrame *' at 0x1003cdf30> >
>>> print frm
<wx._windows.Frame; proxy of <Swig Object of type 'wxFrame *' at 0x1003cdf30> >
>>>
>>> f == frm
True
>>> f is frm
True
>>>
主要要求是设置窗口的名称,无论是通过将
name="foo"
传递给其__init__
创建的,还是使用SetName("foo")
方法创建的。然后您可以使用wx.FindWindowByName
在以后获取该窗口:除了上面使用的全局函数之外,
wx.Window
类中还有一个名为FindWindowByName
的静态方法,它执行相同的操作,在wxPython的早期版本中,有一个非静态方法只搜索窗口的子级。所以这可能就是你所经历的困惑的来源。但是,在wxPython的所有版本中使用如上所示的全局函数应该是安全的,如果需要将搜索限制在包含层次结构的特定子树上,那么可以将父窗口作为第二个参数传递。在相关问题 更多 >
编程相关推荐