SelectTagMeta
Introduction
SelectTagMeta widget in Supervisely is a drop down menu that allows users to select a TagMeta from a list of available tag metadatas. The widget can be customized with various parameters, such as the default selected tag metadata, default project ID, size, allowed types, multiple selection, label showing.
Function signature
SelectTagMeta(
default=None,
project_id=None,
project_meta=None,
allowed_types=None,
multiselect=False,
show_label=True,
size=None,
widget_id=None,
)
Parameters
default
str
Tag name
project_id
int
Determine Project from which Tags will be selected.
project_meta
ProjectMeta
Determine ProjectMeta from which Tags will be selected
allowed_types
List[str]
Determine Tags types witch will be available to select from all Project Tags
multiselect
bool
Allows to select multiple Tags
show_label
bool
Show label
size
Literal["large", "small", "mini", None]
Selector size
widget_id
str
ID of the widget
default
Determine Tag will be selected by default.
type: str
default value: None
select_tag_meta = SelectTagMeta(default="rust", project_id=project_id)
project_id
Determine Project from which Tags will be selected.
type: int
default value: None
select_tag_meta = SelectTagMeta(project_id=project_id)
project_meta
Determine ProjectMeta from which Tags will be selected.
type: ProjectMeta
default value: None
meta_json = api.project.get_meta(project_id)
project_meta = sly.ProjectMeta.from_json(meta_json)
select_tag_meta = SelectTagMeta(project_meta=project_meta)
allowed_types
Determine Tags types witch will be available to select from all Project Tags. Possible Tag types: any_number, any_string, one_of_string, none.
type: List[str]
default value: None
from supervisely.annotation.tag_meta import TagValueType
allowed_types = [TagValueType.ANY_STRING]
select_tag_meta = SelectTagMeta(project_id=project_id, allowed_types=allowed_types)
multiselect
Allows to select multiple Tags.
type: bool
default value: False
select_tag_meta = SelectTagMeta(project_id=project_id, multiselect=True)
show_label
Determine show text Tag on widget or not.
type: bool
default value: True
select_tag_meta = SelectTagMeta(project_id=project_id, show_label=False)
size
Size of input.
type: Literal["large", "small", "mini", None]
default value: None
select_tag_meta = SelectTagMeta(default="cat", project_id=project_id, show_label=False)
select_mini = SelectTagMeta(default="cat", project_id=project_id, show_label=False, size="mini")
select_small = SelectTagMeta(default="cat", project_id=project_id, show_label=False, size="small")
select_large = SelectTagMeta(default="cat", project_id=project_id, show_label=False, size="large")
card = Card(
title="Select TagMeta",
content=Container(widgets=[select_tag_meta, select_mini, select_small, select_large]),
)
widget_id
ID of the widget.
type: str
default value: None
Methods and attributes
get_selected_name()
Return selected tag name. If multiselect is True raise RuntimeError.
get_selected_names()
Return List with selected Tag names. If multiselect is False raise RuntimeError.
get_tag_meta_by_name(name: str)
Return TagMeta by Tag name.
get_selected_item()
Return TagMeta for selected Tag.
get_selected_items()
Return List, containing TagMeta for selected tags.
set_name(name: str)
Set Tag with given name as selected.
set_names(names: List[str])
Set Tags from given list of Tag names as selected. If multiselect is False raise RuntimeError.
Mini App Example
You can find this example in our Github repository:
ui-widgets-demos/selection/007_select_tag_meta/src/main.py
Import libraries
import os
import supervisely as sly
from dotenv import load_dotenv
from supervisely.app.widgets import Card, Container, SelectTagMetaInit 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
Project IDproject_id = sly.env.project_id()Initialize SelectTagMeta widget
SelectTagMeta widgetselect_tag_meta = SelectTagMeta(default="cat", project_id=project_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 TagMeta",
content=select_tag_meta,
)
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?