我只是想知道是否有一种方法可以根据ID而不是名称来设置wx.TextCtrl()的焦点。
通常你会做像这样的事情。
text = wx.TextCtrl(self, 100, '')
text.SetFocus()然后将焦点设置在文本上。然而,我会有一个不确定的wx.TextCtrls数量,我会有一个循环来制作它们,它们都有不同的ID。我想知道他们是不是这样做的方式?
'id#'.SetFocus() #Set focus to TextCtrl with id = id#我看到了一种用字典来做这件事的方法,但我想还有一种更好的方法。
谢谢,
发布于 2011-01-20 05:37:08
我从不使用wx ID,因为有更好的方法。我推荐这样做:
self.controls = []
for i in range(100):
control = wx.TextCtrl(self, -1, '')
self.controls.append(control)
sizer.Add(control)
...
self.controls[12].SetFocus()或者,当字典比列表更有意义时,您可以使用字典,这取决于您需要如何查找它们。
如果你很难使用ID,你可以尝试这样做:
self.FindWindowById(id, self).SetFocus()https://stackoverflow.com/questions/4740994
复制相似问题