我经常发现自己处于一种情况,我想在wxFormbuilder中创建一些wx.StaticText
或其他一些小部件,并且能够动态地引用这些小部件。假设我有一些名为a0
到a10
我如何在代码中找到它们?
一种方法是列出包含所有变量的列表,但它很难看,而且感觉效率低下?也许不是,但至少代码到处都是长列表。
def updateLabels(self, data):
guiLabels = [self.a0, self.a1, self.a2 ..... ]
for i in range(len(guiLabels)):
guiLabels[i].SetLabel(data[i)
你如何解决这个问题?
另一种方法是在启动应用程序时制作guiLabels列表。但是,我找到它们时遇到了一些问题。你必须在顶部窗口调用GetChildren()并为每个wx.ID
设置一个不同的StaticText
,然后遍历每个元素并找到你所做的这个ID。当我这样做时的格式是真的关键..文本得到不同的背景颜色,并不尊重它的对齐和其他时髦的东西。
关于我如何做到这一点的任何想法?
答案 0 :(得分:1)
这样的事可能对你有用:
for x in xrange(10):
name = "a%s" % x # dynamically generating reference names
obj = getattr(self, name) # getting the object reference from the parent object
obj.SetLabel("xyz")