【问题标题】:Lua wxwidgets wxListCtrlLua wxwidgets wxListCtrl
【发布时间】:2015-01-14 18:11:50
【问题描述】:

如何获取一行点击时的索引?

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 )

【问题讨论】:

    标签: lua wxwidgets


    【解决方案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 支持的解决方案的良好来源。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多