【发布时间】:2011-08-08 11:35:34
【问题描述】:
我正在用 wxpython 编写一个简单的数据库 GUI。
为了显示我的数据库条目,我使用了wx.ListCtrl。让我们考虑以下代码sn-p:
class BookList(wx.ListCtrl):
def __init__(self, parent, ID=wx.ID_ANY):
wx.ListCtrl.__init__(self, parent, ID)
self.InsertColumn(0, 'Title')
self.InsertColumn(1, 'Author')
# set column width ...
self.Bind(wx.EVT_RIGHT_DOWN, self.OnRightDown)
def OnRightDown(self, event):
menu = wx.Menu()
delete = menu.Append(wx.ID_ANY, 'Delete Item')
self.Bind(wx.EVT_MENU, self.OnDelete, delete)
# select row
self.PopupMenu(menu, event.GetPosition())
在生成菜单之前,我不知道如何选择行。
我想到了两种可能的解决方案:
- 使用
wx.ListCtrl.Select(),但不知道如何获取我要选择的行对应的idx参数。 - 触发
wx.EVT_LEFT_DOWN,但我不知道如何(甚至是否)可以做到。
我走对了吗?有没有更好的解决办法?
提前致谢。
【问题讨论】: