Эквивалент HTML-блока множественного выбора в wxPython - PullRequest
3 голосов
/ 12 декабря 2008

Я хотел бы создать ListBox в wxPython с той же семантикой, что и для множества select в HTML. В частности, я хотел бы следующую семантику

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

В Java я получаю это, используя класс JList в Swing и устанавливая режим выбора на MULTIPLE_INTERVAL_SELECTED. Я предполагаю, что есть способ сделать это с помощью инструментария wxPython, но я не могу понять, как получить ListBox или ListCtrl или любой другой класс, чтобы сделать это за исключением огромного количества событийного программирования я.

1 Ответ

3 голосов
/ 12 декабря 2008

Я думаю, вам нужен стиль списка wxLB_EXTENDED . Укажите style = wx.LB_EXTENDED при создании ListBox.

Затем можно использовать метод GetSelections, чтобы получить список выбранных элементов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...