Lua wxwidgets wxListCtrl

时间:2015-01-14 18:11:50

标签: lua wxwidgets

单击时如何获取行的索引?

lpanelList:Connect(ID_REL_LIST, wx.wxEVT_COMMAND_LEFT_CLICK,
function (event)
local number
number = GetIndex()                           --generates an error
frame:SetStatusText("REL LIST")
wx.wxMessageBox('Clicked on rel list.',
" Rel List Clicked ",
wx.wxOK + wx.wxICON_INFORMATION,
lpanelList)
end )

1 个答案:

答案 0 :(得分:1)

GetIndex()event的一种方法,因此您应该使用event:GetIndex(),但我认为它不会填充鼠标事件(LEFT_CLICK)。对于鼠标事件,您可能需要使用wxListCtrl:FindItem(如果可通过wxlua获得)以使项目最接近点击位置。要获取点击的坐标,您可以使用event:GetPoint()(如果可用)或类似的内容:

local mousePos = wx.wxGetMousePosition() -- mouse pos on screen
local clientPos = lpanelList:ScreenToClient(mousePos)

您也可以使用wxEVT_COMMAND_LIST_ITEM_ACTIVATED而不是使用鼠标事件,在这种情况下,您可以执行local index = event:GetIndex()(我认为此索引是基于0的。)

如果你使用的是wxlua,我发现它附带的样本(samples/文件夹)是wxlua API支持的一个很好的解决方案来源。