2015-09-22 3 views
1

Я использую wxPython в союзах с wxFormBuilder. У меня есть wxDataViewListCtrl с 5 столбцами для отображения моих значений. Пользователь может выбрать одну или несколько строк (style = wxDV_MULTIPLE). Если пользователь выбрать только одну строку я могу поймать его с помощью этого метода:wxPython | wxDataViewListCtrl получить все выбранные строки/элементы

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

Если пользователь выбирает более одной строки я получаю только элемент, где размещен курсор. Я не нашел способа получить все выбранные элементы.

Спасибо за ответы.

ответ

1

По какой-то причине функциональность, в которой вы нуждаетесь, не документирована (по крайней мере, в единственных действительно используемых документах 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).