1

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

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

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

感谢您的回答。

4

1 回答 1

1

由于某种原因,您需要的功能没有记录(至少在唯一真正可用的 wxPython/Phoenix 文档中)。它确实存在于当前的 wxWidgets 文档中。但是你可以在 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 测试过)。

于 2015-09-22T08:25:17.823 回答