【问题标题】:Event triggered when selecting a ListBox item选择 ListBox 项时触发的事件
【发布时间】:2014-02-16 21:32:32
【问题描述】:

我像这样初始化wx.ListBox

mylistbox = wx.ListBox(self, style=wx.LB_SINGLE)
mylistbox.Bind(wx.EVT_LISTBOX, self.OnEventListBox)
# some other things (append some items to the list)
mylistbox.SetSelection(5)

我也有:

def OnEventListBox(self, event):
    print 'hello'
    # plus lots of other things

如何使初始化中的命令mylistbox.SetSelection(5)紧跟OnEventListBox的调用?

备注 : SetSelection() 好像没有自动生成 wx.EVT_LISTBOX。

【问题讨论】:

    标签: python events listbox wxpython wxwidgets


    【解决方案1】:

    来自the documentation

    请注意,[SetSelection] 不会导致发出任何命令事件...

    这是有意为之,以便在您尝试设置 UI 时不会触发所有事件。您可以手动调用OnEventListBox 以获得所需的功能。

    更好的是,如果您不需要在 init 上执行的事件,您可以将初始化提取到一个单独的函数中,然后在 init OnEventListBox 中调用它.

    【讨论】:

    • 当然我可以手动称自己为OnEventListBox,但使用哪个event 参数?我无法为自己创建event,因为我并没有真正单击列表框...或者,另一种解决方案,我可以创建另一个几乎是OnEventListBox 的复制/粘贴的函数,只是为了初始化。这不是很漂亮,这就是为什么我问是否有其他解决方案......
    • 如果您不需要该事件,您可以将初始化提取到一个单独的函数中,然后在 init 和 OnEventListBox 中调用 that .
    • @jonrsharpe 上面的评论是正确的答案,我鼓励您编辑原始答案以提及这是执行用户和程序本身。
    猜你喜欢
    • 2021-06-27
    • 2014-07-21
    • 1970-01-01
    • 1970-01-01
    • 2017-06-09
    • 2017-04-10
    • 1970-01-01
    • 1970-01-01
    • 2021-08-28
    相关资源
    最近更新 更多