Эквивалент 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
Способ получения списка выбранных предметов.