Menu
Introduction
Menu widget from Supervisely is a useful tool for organizing and navigating in Supervisely apps. With Menu widget, users can create custom menus that shows different parts and widgets of the app. These menus can be organized by groups.
Function signature
Menu(
items=None,
groups=None,
index=None,
width_percent=25,
widget_id=None,
)
Parameters
items
List[Menu.Item]
List of Menu Items
groups
List[Menu.Group]
List of Menu Groups
index
str
Sets the active Menu at the given index
width_percent
int
Width of the left part of Menu in %
widget_id
str
ID of the widget
items
Determine list of menu Items.
type: List[Menu.Item]
default value: None
text = Text(text="text", status="success")
done_label = DoneLabel("done")
items = [
Menu.Item(title="menu item 1", content=text),
Menu.Item(title="menu item 2", content=done_label),
]
menu = Menu(items=items)
groups
Determine list of menu Groups.
type: List[Menu.Group]
default value: None
l = Text(text="left part", status="success")
items = [
Select.Item(label="CPU", value="cpu"),
Select.Item(label="GPU 0", value="cuda:0"),
Select.Item(value="option3"),
]
r = Select(items=items, filterable=True)
g1_items = [
Menu.Item(title="m1", content=r),
Menu.Item(title="m2", content=l),
]
g2_items = [
Menu.Item(title="m3", content=Empty()),
Menu.Item(title="m4"),
]
g1 = Menu.Group("group_1", g1_items)
g2 = Menu.Group("group_2", g2_items)
menu = Menu(groups=[g1, g2])
index
Sets the active Menu at the given index.
type: str
default value: None
text = Text(text="text", status="success")
done_label = DoneLabel("done")
items = [
Menu.Item(title="menu item 1", content=text),
Menu.Item(title="menu item 2", content=done_label),
]
menu = Menu(items=items, index="menu item 2")
width_percent
Determines width of the left part of Menu in %.
type: int
default value: 25
text = Text(text="text", status="success")
done_label = DoneLabel("done")
items = [
Menu.Item(title="menu item 1", content=text),
Menu.Item(title="menu item 2", content=done_label),
]
menu = Menu(items=items, width_percent=50)
widget_id
ID of the widget.
type: str
default value: None
Mini App Example
You can find this example in our Github repository:
ui-widgets-demos/layouts and containers/007_menu/src/main.py
Import libraries
import os
import supervisely as sly
from dotenv import load_dotenv
from supervisely.app.widgets import Empty, Menu, Select, 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()Initialize Menu items
Menu itemstext = Text(text="text", status="success")
done_label = DoneLabel("done")
g1_items = [
Menu.Item(title="menu item 1", content=text),
Menu.Item(title="menu item 2", content=done_label),
]
g2_items = [
Menu.Item(title="menu item 3", content=Empty()),
Menu.Item(title="menu item 4"),
]Initialize Menu groups
Menu groupsgroup_1 = Menu.Group("group 1", g1_items)
group_2 = Menu.Group("group 2", g2_items)Initialize Menu widget
Menu widgetmenu = Menu(groups=[group_1, group_2])Create app using layout
Create an app object with layout parameter.
app = sly.Application(layout=menu)
Last updated
Was this helpful?