Introduction
Select
widget in Supervisely is a graphical user interface element that allows users to choose an option from a predefined list. It presents the options as a dropdown menu that can be expanded and collapsed by clicking. Select
widget has event handler that is triggered when the user selects an option from the dropdown menu. This can be useful for applications that require users to take an action based on the selected option, such as filtering content or displaying specific information.
Function signature
Copy Select (
items = None , groups = None ,
filterable = False ,
placeholder = "select" ,
size = None ,
multiple = False ,
widget_id = None
)
Parameters
Parameters Type Description List of Select.Item
widgets
List of Select.Group
widgets
Whether Select
is filterable
Literal["large", "small", "mini", None]
Whether multiple-select is activated
items
Determine list of Select.Item
widgets.
type: List[Select.Item]
default value: None
Prepare select items:
Copy animals_domestic = [
Select . Item (value = "cat" , label = "cat" ),
Select . Item (value = "dog" , label = "dog" ),
]
animals_wild = [
Select . Item (value = "squirrel" , label = "squirrel" ),
]
Initialize widget with given items:
Copy select_items = Select (
items = animals_domestic + animals_wild,
filterable = True ,
)
groups
Determine list of Select.Group
widgets.
type: List[Select.Group]
default value: None
Prepare select items and groups:
Copy animals_domestic = [
Select . Item (value = "cat" , label = "cat" ),
Select . Item (value = "dog" , label = "dog" ),
]
animals_wild = [
Select . Item (value = "squirrel" , label = "squirrel" ),
]
groups = [
Select . Group (label = "domestic" , items = animals_domestic),
Select . Group (label = "wild" , items = animals_wild),
]
Initialize widget with given groups of items:
Copy select_groups = Select (groups = groups)
filterable
Whether Select
is filterable.
type: bool
default value: false
Copy select_items = Select (
items = animals_domestic + animals_wild,
filterable = True ,
)
placeholder
Placeholder. It needs to set multiple=True
parameter.
type: str
default value: select
Copy select_items = Select (
items = animals_domestic + animals_wild,
multiple = True ,
placeholder = "Select animals" ,
)
size
Size of input.
type: Literal["large", "small", "mini", None]
default value: None
Copy select = Select (items = animals_domestic)
select_mini = Select (items = animals_domestic, size = "mini" )
select_small = Select (items = animals_domestic, size = "small" )
select_large = Select (items = animals_domestic, size = "large" )
card = Card (content = Container (widgets = [select, select_mini, select_small, select_large]))
multiple
Whether multiple-select is activated.
type: bool
default value: false
Copy select_items = Select (
items = animals_domestic + animals_wild,
multiple = True ,
)
widget_id
ID of the widget.
type: str
default value: None
Methods and attributes
Attributes and Methods Description Return selected item value.
Return list of items from widget.
Return selected item label.
Return list of labels for all items
set(items: List[Select.Item] = None, groups: List[Select.Group] = None)
Set Select
input items or group of items.
disable_item(item_index: int, group_index: int = None)
enable_item(item_index: int, group_index: int = None)
disable_group(group_index: int)
enable_group(group_index: int
Decorator functions is handled when input value is changed.
Mini App Example
You can find this example in our Github repository:
ui-widgets-demos/selection/001_select/src/main.py
Import libraries
Copy import os
import supervisely as sly
from dotenv import load_dotenv
from supervisely . app . widgets import Card , Container , Select
Init API client
First, we load environment variables with credentials and init API for communicating with Supervisely Instance:
Copy load_dotenv ( "local.env" )
load_dotenv (os.path. expanduser ( "~/supervisely.env" ))
api = sly . Api ()
Prepare items and groups of items for Select
widget using Select.Item
and Select.Group
Copy animals_domestic = [
Select . Item (value = "cat" , label = "cat" ),
Select . Item (value = "dog" , label = "dog" ),
Select . Item (value = "horse" , label = "horse" ),
Select . Item (value = "sheep" , label = "sheep" ),
]
animals_wild = [
Select . Item (value = "squirrel" , label = "squirrel" ),
]
groups = [
Select . Group (label = "domestic" , items = animals_domestic),
Select . Group (label = "wild" , items = animals_wild),
]
Initialize Select
widget
Copy select_items = Select (
items = animals_domestic + animals_wild,
filterable = True ,
)
select_groups = Select (groups = groups)
Create app layout
Prepare a layout for app using Card
widget with the content
parameter and place widget that we've just created in the Container
widget.
Copy card = Card (
title = "Select" ,
content = Container (widgets = [select_items, select_groups]),
)
layout = Container (widgets = [card])
Create app using layout
Create an app object with layout parameter.
Copy app = sly . Application (layout = layout)