wxpython,根据控件名称查找控件

4 投票
3 回答
1659 浏览
提问于 2025-04-16 17:54

我在想,是否可以根据控件的名字来获取这个控件的引用。(我相信这是可能的)

就像这样:control = findcontrol("btnProduct"+buttonNumber)

你们大概明白我的意思了吧……(是的,我在wxPython方面还是个新手)

祝好,

Dennis

3 个回答

1

了解一下Python中的 locals() 和 globals() 函数。

比如你可以这样做:

control = locals()['btnProduct' + buttonNumber]

当然,可能还有更好的方法来实现你想要的功能。也许可以把你的控制项放进一个字典里?

3

你可以使用框架实例的 FindWindowByName() 方法,前提是你给这个小部件传递了一个独特的名字参数。或者,你也可以使用框架实例的 FindWindowByLabel() 方法来查找。你还可以通过 ID 来查找,但我不太推荐这样做,因为自己管理 ID 其实不是个好主意。

2

最后我得到了这个:

        control = getattr(self, "btnProduct%s" % (str(buttonNo)))
        control.SetLabel("")

谢谢Mark帮我指明了方向!

撰写回答