Я инициализировать wx.ListBox
так:Событие срабатывает при выборе пункта 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 автоматически.
Конечно, я мог бы вручную называть себя 'OnEventListBox', но с каким параметром' event'? Я не могу создать себе «событие», потому что я действительно не нажимаю на список ... Или, еще одно решение, я мог бы создать еще одну функцию, которая почти копирует/вставляет «OnEventListBox», только для целей инициализация. Это не очень красиво, поэтому я спросил, есть ли другое решение ... – Basj
Если вам не нужно событие за то, что вы делаете, вы можете извлечь инициализацию в отдельную функцию, а затем вызвать *, что * в init и в 'OnEventListBox'. – jonrsharpe
комментарий @jonrsharpe выше - это правильный ответ, я бы рекомендовал вам отредактировать исходный ответ, чтобы упомянуть, что это правильный подход для выполнения некоторого кода как для изменений, выполненных пользователем, так и самой программой. –