我有一个包含三列的 UltimateListCtrl。第一个简单地显示索引,第二个有一个 Choice 小部件来选择一个操作,第三个有一些 StaticText 小部件(参数),它们的数量和标识取决于第 2 列中的选择。
When the Choice is changed, I get a CommandEvent about it, but I can't figure out in which cell I am. 我需要这个来更改第三列中的小部件。
附上相关代码:
def addAction(self, action):
# set the Choice in the cell
index = self.list.InsertStringItem(sys.maxint, '')
self.list.SetStringItem(index, self.columns['#'], str(index))
self.list.SetStringItem(index, self.columns['Action'], '')
self.list.SetStringItem(index, self.columns['Parameters'], '')
item = self.list.GetItem(index, self.columns['Action'])
choice = wx.Choice(self.list, -1, name=action.name,
choices=[availableAction.name for availableAction in self.availableActions])
choice.Bind(wx.EVT_CHOICE, self.onActionChange)
item.SetWindow(choice, expand=True)
self.list.SetItem(item)
# set the third column's widgets
self.setItemParameters(index, action)
def onActionChange(self, event):
action = copy.deepcopy(self.availableActionsDict[event.GetString()])
# This doesn't work because this event doesn't have a GetIndex() function
self.setItemParameters(event.GetIndex(), action)
正如您在代码中看到的,我想找到更改后的 Choice 小部件的索引。有人知道该怎么做吗?我尝试通过查看列表中当前选定/聚焦的项目来获取项目索引,但它与正在更改的选项无关。