Dropdown
Introduction
Dropdown is a widget in Supervisely that allows for selecting action from dropdown menu on the UI.
Function signature
Dropdown(
items=None,
trigger="hover",
menu_align="end",
hide_on_click=True,
header="Dropdown List",
widget_id=None,
)Example of input data we will use.
items = [
Dropdown.Item(text="1"),
Dropdown.Item(text="2"),
Dropdown.Item(text="3"),
Dropdown.Item(text="4"),
Dropdown.Item(text="5"),
Dropdown.Item(text="6"),
]
dropdown = Dropdown(items=items)
Parameters
items
List[Dropdown.Item]
Input Dropdown data
trigger
Literal["hover", "click"]
How to trigger Dropdown items
menu_align
Literal["start", "end"]
Horizontal alignment
hide_on_click
bool
Whether to hide menu after clicking menu-item
header
str
Dropdown header
widget_id
str
ID of the widget
items
Determine input Dropdown data.
type: List[Dropdown.Item]
default value: None
trigger
Determine how to trigger Dropdown items.
type: Literal["hover", "click"]
default value: hover
menu_align
Determine horizontal alignment.
type: Literal["start", "end"]
default value: end
hide_on_click
Determine whether to hide menu after clicking menu-item.
type: bool
default value: True
dropdown = Dropdown(items=items, hide_on_click=False)
header
Determine Dropdown header.
type: str
default value: "Dropdown List"
dropdown = Dropdown(items=items, header="Your text here")
Methods and attributes
get_value()
Return Dropdown selected values command.
set_value(value: str)
Set Dropdown selected value command.
get_items()
Return Dropdown items.
set_items(value: List[Dropdown.Item])
Set Dropdown items.
add_items(value: List[Dropdown.Item])
Add items in Dropdown.
get_header_text()
Return Dropdown header text.
set_header_text(value: str)
Set Dropdown header text.
@value_changed
Decorator function to handle selected value change.
Mini App Example
You can find this example in our Github repository:
supervisely-ecosystem/ui-widgets-demos/selection/014_dropdown/src/main.py
Import libraries
import os
import supervisely as sly
from dotenv import load_dotenv
from supervisely.app.widgets import Card, Container, Dropdown, TextInit API client
First, we load environment variables with credentials and init API for communicating with Supervisely Instance:
load_dotenv("local.env")
load_dotenv(os.path.expanduser("~/supervisely.env"))
api = sly.Api()Prepare items for cascader
items = [
Dropdown.Item(text="1", command="A"),
Dropdown.Item(text="2", divided=True, command="B"),
Dropdown.Item(text="3", disabled=True, command="C"),
Dropdown.Item(text="4", command="D"),
Dropdown.Item(text="5", divided=True, command="E"),
Dropdown.Item(text="6", command="F"),
]Initialize Dropdown and Text widgets
Dropdown and Text widgetsdropdown = Dropdown(items=items, header="Example dropdown")
text = Text()Create app layout
Prepare a layout for app using Card widget with the content parameter.
card = Card(
"Dropdown",
content=Container([dropdown, text]),
)
layout = Container(widgets=[card])Create app using layout
Create an app object with layout parameter.
app = sly.Application(layout=card)Add functions to control widgets from python code
@dropdown.value_changed
def show_item(res):
info = f"Command {res} will be executed"
text.set(text=info, status="info")
Last updated
Was this helpful?