Вы можете использовать функцию Bind
для привязки метода к событию. Например,
import wx
class MainWidget(wx.Frame):
def __init__(self, parent, title):
super(MainWidget, self).__init__(parent, title=title)
self.list = wx.ListCtrl(parent=self)
for i,j in enumerate('abcdef'):
self.list.InsertStringItem(i,j)
self.Bind(wx.EVT_LIST_ITEM_ACTIVATED, self.OnClick, self.list)
self.Layout()
def OnClick(self, event):
print event.GetText()
if __name__ == '__main__':
app = wx.App(redirect=False)
frame = MainWidget(None, "ListCtrl Test")
frame.Show(True)
app.MainLoop()
Это приложение напечатает элемент в ListCtrl, который активирован (нажав клавишу ввода или двойной щелчок). Если вы просто хотите поймать событие одного клика, вы можете использовать wx.EVT_LIST_ITEM_SELECTED
.
Важным моментом является то, что функция Bind
определяет метод, который вызывается при наступлении определенного события. См. Раздел руководства по началу работы с wxPython по обработке событий . Также см. Документы по ListCtrl для событий, которые использует виджет.