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.ProjectTypes: 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, SelectProjectInit 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_idworkspace_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?