1

我想捕获由我的 floatspinners 触发的 FLOATSPIN 事件,但我需要知道哪个 FloatSpin 控件触发了此事件。这是必需的,以便我可以更新字典的值。

FloatSpin 控件是基于键值对字典创建的。键是我的 FloatSpin 控件的唯一 ID,值是控件的默认值。我想更新我的字典 k:v 对,我正在更新的值将来自 FloatSpin 控件事件。

鉴于以下(精简)示例,我将如何捕获触发事件的控件的唯一 ID?

firstFS = FS.FloatSpin(self, -1, min_val=0, max_val=None, increment=1, value=1, agwStyle=FS.FS_RIGHT)
secondFS = FS.FloatSpin(self, -1, min_val=0, max_val=None, increment=1, value=1, agwStyle=FS.FS_RIGHT)

self.Bind(FS.EVT_FLOATSPIN, self.OnFloatSpin)

def OnFloatSpin(self, event):
    floatspin = event.GetEventObject()
4

1 回答 1

0

花了几个小时试图弄清楚,但我明白了!

firstFS = FS.FloatSpin(self, -1, min_val=0, max_val=None, increment=1, value=1, agwStyle=FS.FS_RIGHT)
firstFS.SetName('firstFS')  # for example
secondFS = FS.FloatSpin(self, -1, min_val=0, max_val=None, increment=1, value=1, agwStyle=FS.FS_RIGHT)
secondFS.SetName('secondFS')  # for example

self.Bind(FS.EVT_FLOATSPIN, self.OnFloatSpin)

def OnFloatSpin(self, event):
    floatspin = event.GetEventObject()
    floatspinID = event.GetId()  # grab the widgets id that is firing the event
    '''OR'''
    floatspinName = event.GetEventObject().GetName()  # grab the widget name
于 2012-07-05T17:20:18.523 回答