因此,我有一个包含多行数据的wxPython ListCtrl。当单击某一行时,如何使用行内容创建调用函数的事件?
发布于 2011-07-27 22:53:21
您可以使用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中打印项目(通过按enter或双击)。如果你只想捕捉一个单击事件,你可以使用wx.EVT_LIST_ITEM_SELECTED。
重要的一点是,Bind函数指定在发生特定事件时要调用的方法。请参阅event handling上的wxPython入门指南中的部分。另请参阅ListCtrl上的文档,了解小部件使用的事件。
https://stackoverflow.com/questions/6830393
复制相似问题