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

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

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

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

12.12.2008 19:45:11
1 ОТВЕТ
РЕШЕНИЕ

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

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

3
12.12.2008 20:09:48