Эквивалент HTML-блока множественного выбора в wxPython

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

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

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

1 ответ

Решение

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

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

Другие вопросы по тегам