ipywidgets_toggle_buttons is a simple python package(py>=3.6)
with more toggle buttons for ipywidgets
pip install ipywidgets_toggle_buttons
This python package consists of other ToggleButtons classes
ToggleButtonsAutoSize - To adjust buttons size to show their’s full description automatically
MultiToggleButtons - To select a few options at once with usual ToggleButtons interface
ToggleButtonsWithHide - ToggleButtonsAutoSize + Hidden options
MultiToggleButtonsWithHide - MultiToggleButtons + Hidden options
All of them will adjust size of buttons if options are modified.
Also they have usual interfaces to work with values and options
Create and show this widget
from ipywidgets_toggle_buttons import ToggleButtonsAutoSize
wid = ToggleButtonsAutoSize(options=[str(i) for i in range(10)])
wid
print(wid.value) # "0"
print(wid.options) # ('0', '1', '2', '3', '4', '5', '6', '7', '8', '9')
print(wid.layout.width) # '100%'
wid.options = list(wid.options) + ["ajhfkaghnkandjgnakdn"]
Create and show this widget
from ipywidgets_toggle_buttons import MultiToggleButtons
wid = MultiToggleButtons(
options=[str(i) for i in range(10)],
max_chosen_values=2,
)
wid
def on_value_change(_):
print("pew")
wid.observe(on_value_change, 'value')
print(wid.value) # ()
wid.value = ["2", "8"] # "pew"
Create and show this widget
from ipywidgets_toggle_buttons import ToggleButtonsWithHide
wid = ToggleButtonsWithHide(
value="0",
options_visible=[str(i) for i in range(10)],
options_hidden=[str(i) for i in range(5, 15)],
)
wid
After pressing the button Show Hidden Options
Select value 12
And hide Hidden options
print(wid.value) # "12"
wid.options_visible = [str(i) for i in range(2)]
wid.options_hidden = [f"another {i}" for i in range(2)]
Create and show this widget
from ipywidgets_toggle_buttons import MultiToggleButtonsWithHide
wid = MultiToggleButtonsWithHide(
options_visible=[str(i) for i in range(10)],
options_hidden=[str(i) for i in range(5, 15)],
max_chosen_values=4,
)
wid
After pressing the button Show Hidden Options
Select a few options and hide all Hidden options
print(wid.value) # ('1', '9', '11', '13')
print(wid.options_hidden) # ('10', '11', '12', '13', '14')
If at any moment you want to change the options then it can be done like shown below
wid.options_visible = [str(i) for i in range(2)]
wid.options_hidden = [f"another {i}" for i in range(2)]
This project is licensed under the MIT License.