Skip to main content

PYPI package with better toggle buttons

Project description

GitHub last commit GitHub license<space><space> Documentation Status PyPI PyPI - Python Version

Short Overview.

ipywidgets_toggle_buttons is a simple python package(py>=3.6) with more toggle buttons for ipywidgets

Installation via pip:

pip install ipywidgets_toggle_buttons

Long Overview.

This python package consists of other ToggleButtons classes

  • ToggleButtonsAutoSize - To adjust buttons size to show full their’s description

  • 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

Simple Usage examples

ToggleButtonsAutoSize

Create and show this widget

from ipywidgets_toggle_buttons import ToggleButtonsAutoSize
wid = ToggleButtonsAutoSize(options=[str(i) for i in range(10)])
wid  # OR wid.box_widget
images/toggle_buttons_auto_size_1.JPG
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"]
images/toggle_buttons_auto_size_2.JPG

MultiToggleButtons

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  # OR wid.box_widget
images/multi_toggle_buttons_1.JPG
def on_value_change(_):
    print("pew")

wid.observe(on_value_change, 'value')
print(wid.value)  # ()
wid.value = ["2", "8"]  # "pew"
images/multi_toggle_buttons_2.JPG

ToggleButtonsWithHide

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  # OR wid.box_widget
images/toggle_buttons_with_hide_1.JPG

After pressing the button Show Hidden Options

images/toggle_buttons_with_hide_2.JPG

Select value 12

images/toggle_buttons_with_hide_3.JPG

And hide Hidden options

images/toggle_buttons_with_hide_4.JPG
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)]
images/toggle_buttons_with_hide_5.JPG

MultiToggleButtonsWithHide

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  # OR wid.box_widget
images/multi_toggle_buttons_with_hide_1.JPG

After pressing the button Show Hidden Options

images/multi_toggle_buttons_with_hide_2.JPG

Select a few options and hide all Hidden options

images/multi_toggle_buttons_with_hide_3.JPG
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)]

Advanced Usage examples

How to add this widgets into the Box, HBox, VBox

from ipywidget import Box

wid = AnyToggleButton(
    ...,
    func_to_get_option_width=func_new_width
)

wid_box = Box([])

def func_new_width(iter_options):

    int_max_width = 0
    for option in iter_options:
        cur_but_width = 8 * len(option)
        if cur_but_width > int_max_width:
            int_max_width = cur_but_width
    return int_max_width

How to adjust buttons width differently

During the initialization of any widget pass additional argument func_to_get_option_width with function which accepts itterator over options and returns 1 integer with width to use for this buttons

def func_new_width(iter_options):

    int_max_width = 0
    for option in iter_options:
        cur_but_width = 8 * len(option)
        if cur_but_width > int_max_width:
            int_max_width = cur_but_width
    return int_max_width

wid = AnyToggleButton(
    ...,
    func_to_get_option_width=func_new_width
)

How to access all options of the widget

Use attribute .widget to get full control over shown widget

wid = AnyToggleButton(...)
wid.widget

Contacts

License

This project is licensed under the MIT License.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

ipywidgets_toggle_buttons-0.1.5.tar.gz (10.2 kB view details)

Uploaded Source

Built Distribution

ipywidgets_toggle_buttons-0.1.5-py3-none-any.whl (11.8 kB view details)

Uploaded Python 3

File details

Details for the file ipywidgets_toggle_buttons-0.1.5.tar.gz.

File metadata

File hashes

Hashes for ipywidgets_toggle_buttons-0.1.5.tar.gz
Algorithm Hash digest
SHA256 98942292cde7eb8e006beca2ad3d6f7e21d43ac621753c78156825f88c2dd7bd
MD5 922561fc6bc12466e5c5d9d8d9692892
BLAKE2b-256 2ddc4fbd183216eb21d27cc29e105ce4219ddf24b99bb13ebf292c2cb9e8a8f0

See more details on using hashes here.

File details

Details for the file ipywidgets_toggle_buttons-0.1.5-py3-none-any.whl.

File metadata

File hashes

Hashes for ipywidgets_toggle_buttons-0.1.5-py3-none-any.whl
Algorithm Hash digest
SHA256 b6fe712493464d4042fe9775bb088101c9efd996accc08069c8bfb5b5ff76cc7
MD5 fc700a576f95f3a6b3d1906b61744a94
BLAKE2b-256 ae71746d1f9e95c24566baac726c28bf948626f0764d948969c08d7604600001

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page