SelectProject
Introduction
SelectProject
widget in Supervisely is a dropdown menu that allows users to select a project from a list of available projects in current workspace. Clicking on it can be processed from python code. This widget is particularly useful when working with multiple projects in Supervisely and allows to easily switch between projects in applications.
Function signature
SelectProject(
default_id=None,
workspace_id=None,
compact=False,
allowed_types=[],
show_label=True,
size=None,
widget_id=None,
)

Parameters
default_id
int
Project ID
workspace_id
int
Workspace ID
compact
bool
Show compact view of project selector widget
allowed_types
List[ProjectType]
List of project types witch will be available to select
show_label
bool
Show label
size
Literal["large", "small", "mini", None]
Selector size (large/small/mini)
widget_id
str
ID of the widget
default_id
Determine Project
will be selected by default.
type: int
default value: None
select_project = SelectProject(default_id=project_id)
workspace_id
Determine Workspace
will be selected by default.
type: int
default value: None
select_project = SelectProject(workspace_id=workspace_id)
compact
Show only Project
select.
type: bool
default value: false
select_project = SelectProject(default_id=project_id, workspace_id=workspace_id, compact=True)

allowed_types
List of project types witch will be available to select. Set one of available sly.ProjectType
s: IMAGES
, VIDEOS
, VOLUMES
, POINT_CLOUDS
, POINT_CLOUD_EPISODES
.
type: List[ProjectType]
default value: []
show_label
Determine show text Project
on widget or not. This parameter only affects when parameter compact
is True
.
type: bool
default value: True
select_project = SelectProject(
default_id=project_id, workspace_id=workspace_id, compact=True, show_label=False
)

size
Size of input.
type: Literal["large", "small", "mini", None]
default value: None
select_project = SelectProject(
default_id=project_id, workspace_id=workspace_id, compact=True, show_label=False
)
select_mini = SelectProject(
default_id=project_id, workspace_id=workspace_id, compact=True, show_label=False, size="mini"
)
select_small = SelectProject(
default_id=project_id, workspace_id=workspace_id, compact=True, show_label=False, size="small"
)
select_large = SelectProject(
default_id=project_id, workspace_id=workspace_id, compact=True, show_label=False, size="large"
)
card = Card(
title="Select Project",
content=Container(widgets=[select_project, select_mini, select_small, select_large]),
)

widget_id
ID of the widget.
type: str
default value: None
Methods and attributes
get_selected_id()
Return selected project id.
set_project_id()
Set current project id.
@value_changed
Decorator function to detect changes in selector.
Mini App Example
You can find this example in our Github repository:
ui-widgets-demos/selection/004_select_project/src/main.py
Import libraries
import os
import supervisely as sly
from dotenv import load_dotenv
from supervisely.app.widgets import Card, Container, SelectProject
Init 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 project_id
and workspace_id
project_id
and workspace_id
workspace_id = sly.env.workspace_id()
project_id = sly.env.project_id()
Initialize SelectProject
widget
SelectProject
widgetselect_project = SelectProject(
default_id=project_id,
workspace_id=workspace_id,
)
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.
card = Card(
title="Select Project",
content=Container(widgets=[select_project]),
)
layout = Container(widgets=[card])
Create app using layout
Create an app object with layout parameter.
app = sly.Application(layout=layout)

Last updated
Was this helpful?