Обнаружение выбора строки в wxGrid

Я хотел бы получить предупреждение, когда пользователь выбирает всю строку в wxGrid, но я не вижу события, которое бы обрабатывало это. Как лучше всего это сделать?


person Community    schedule 01.08.2009    source источник


Ответы (2)


Вы можете сделать это, используя EVT_GRID_RANGE_SELECT, а затем проверить, что диапазон представляет собой одну строку, когда вызывается обработчик.

Например, в демонстрации GridSimple.py wxPython поместите строку в SimpleGrid.__init__

    self.Bind(gridlib.EVT_GRID_RANGE_SELECT, self.OnSelectRange)

А затем добавьте это, чтобы увидеть, какие ячейки были выбраны.

def OnSelectRange(self, evt):
    print "on select range", evt.GetTopLeftCoords(), evt.GetBottomRightCoords()

Из этого вы можете определить, был ли выбор тем, что вас интересует.

person tom10    schedule 04.08.2009

На самом деле, я понял это. Существуют такие события, как EVT_GRID_LABEL_LEFT_CLICK, а затем я проверяю event.GetCol() == -1, чтобы убедиться, что щелчок происходит по всей строке, а не по всему столбцу.

person Community    schedule 12.08.2009
comment
Вы также проверяете выбор нескольких строк? Если да, то мне было бы интересно узнать, как вы это сделали. - person Bouke; 12.11.2012