wxPython | wxDataViewListCtrl 获取全部选中 rows/items

wxPython | wxDataViewListCtrl get all selected rows/items

我将 wxPython 与 wxFormBuilder 结合使用。 我有一个包含 5 列的 wxDataViewListCtrl 来列出我的值。 用户可以 select 一行或多行 (style = wxDV_MULTIPLE)。 如果用户只有 select 一行,我可以用这种方法捕获它:

def showContextTZM( self, event ):
    if self.m_dvlc.HasSelection():
        item_id = event.GetItem().GetID()

如果用户select超过一行,我只会得到光标所在的项目。 我没有找到任何方法来获取所有 selected 项目。

感谢您的回答。

出于某种原因,您需要的功能没有记录(至少在唯一真正可用的 wxPython/Phoenix 文档中)。它确实存在于 current wxWidgets documentation 中。但是你可以在wxPython包中找到它:

wxPython 经典,在wx.dataview:

def GetSelections(*args, **kwargs):
    """GetSelections(self) -> DataViewItemArray"""
    return _dataview.DataViewCtrl_GetSelections(*args, **kwargs)

wxPython 凤凰,在.../site-packages/wx/dataview.pi

def GetSelections(self):
    """
    GetSelections() -> DataViewItemArray

    Returns a list of the currently selected items.
    """

它至少在经典 2.9/3.0 中有效(我没有为 Phoenix 测试)。