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 测试)。
我将 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 测试)。