anotherlist.append(a)#where a是对面板的保留 当我说hold时我的意思是说变量名是x,所以 x = wx.Panel。我会调用x,hold cos x可以用于小部件的任何操作,例如x.SetPosition等。我在想也许使用一个类(wx.Panel)来创建面板并保存面板的id。问题是有id我不知道如何访问小部件。说面板ID是-206。我该怎么做像widgetid(-206).SetBackgroundColour(“RED”)
答案 0 :(得分:3)
有些人通过在文件开头创建ID来解决这些问题:
panelOneId = wx.NewId()
panelTwoId = wx.NewId()
然后执行类似myPanel = wx.FindWindowById(panelOneId)的操作。当然,如果您所做的只是设置面板属性,那么您可能只需要创建一个这样的辅助方法:
#----------------------------------------------------------------------
def createPanel(self, sizer, id, bg):
""""""
panel = wx.Panel(self, id=id)
panel.SetBackgroundColour(bg)
sizer.Add(panel)
如果您为面板指定了唯一的名称参数,也可以使用wx.FindWindowByName。
答案 1 :(得分:1)
一个简单的解决方案是使用字典将ID映射到面板
panels = {}
for i in range(100):
id = wx.NewId()
panels[id] = wx.Panel(parent, id, ...)
然后,您可以访问ID列表(.keys()
),面板列表(.values()
)以及从ID到面板的映射。