我将wxPython与wxFormBuilder结合使用。
我有一个wxDataViewListCtrl具有5列以列出我的值。
用户可以选择一个或多个行(样式= wxDV_MULTIPLE)。
如果用户仅选择一行,则可以使用此方法捕获它:

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


如果用户选择多于一行,我只会得到光标所在的项目。
我没有找到任何获取所有选定项目的方法。

感谢您的回答。

最佳答案

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

wxPython经典版本,在wx.dataview中:

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


wxPython Phoenix,在.../site-packages/wx/dataview.pi

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

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


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

关于python - wxPython | wxDataViewListCtrl获取所有选定的行/项目,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/32711381/

10-15 12:25