Introduction
TagMetasList
widget allows users to view a list of tag metas, it provide a flexible display option with a choice of single-column or multiple-column layouts. It also allows users to select or deselect one or more tags, making it easy to manage and organize object classes. This widget is a useful tool for visualizing and selecting tags in Supervisely.
Function signature
Copy tag_metas_list = TagMetasList(
tag_metas=project_meta.tag_metas,
show_type_text=True,
limit_long_names=True,
selectable=True,
columns=1,
widget_id=None
)
Parameters
Parameters
Type
Description
Union[TagMetasCollection, List[TagMeta]]
Supervisely object class collection or list of object classes
If True
display tag value type
If False
show the entire tag name if the name is quite lengthy
tag_metas
Supervisely object class collection (TagMetaCollection
) or list of TagMeta
.
type: Union[TagMetaCollection, List[TagMeta]]
Copy tag_metas_list = TagMetaList(
tag_metas=project_meta.tag_metas,
selectable=False,
columns=1,
)
show_type_text
If True
display tag value type next to tag name.
type: bool
default value: True
Copy tag_metas_list = TagMetasList(
tag_metas=project_meta.tag_metas,
show_shape_text=False,
selectable=False,
)
limit_long_names
If False
show the entire tag name if the name is quite lengthy
type: bool
default value: False
Copy tag_metas_list = TagMetasList(
tag_metas=project_meta.tag_metas,
show_shape_icon=True,
limit_long_names=False,
selectable=False,
)
selectable
Enable tags selection.
type: bool
default False
Copy tag_metas_list = TagMetasList(
tag_metas=project_meta.tag_metas,
selectable=True
)
columns
Number of columns.
type: int
default 1
Copy tag_metas_list = TagMetasList(
tag_metas=project_meta.tag_metas,
show_shape_icon=True,
limit_long_names=True,
selectable=True,
columns=3,
)
widget_id
ID of the widget.
type: str
default value: None
Methods and attributes
Attributes and Methods
Description
Return list of selected tag names.
Mini App Example
You can find this example in our Github repository:
supervisely-ecosystem/ui-widgets-demos/media/014_tag_metas_list/src/main.py
Import libraries
Copy import os
import supervisely as sly
from dotenv import load_dotenv
from supervisely.app.widgets import Card, Container, TagMetasList, ProjectThumbnail
Init API client
First, we load environment variables with credentials and init API for communicating with Supervisely Instance:
Copy load_dotenv("local.env")
load_dotenv(os.path.expanduser("~/supervisely.env"))
api = sly.Api()
Initialize Project ID
Copy project_id = sly.env.project_id()
Get Project info and meta
Copy project_info = api.project.get_info_by_id(id=project_id)
project_meta = sly.ProjectMeta.from_json(api.project.get_meta(project_id))
Initialize TagMetasList
widget
Copy tag_metas_list = TagMetasList(
tag_metas=project_meta.tag_metas,
show_type_text=True,
limit_long_names=True,
selectable=True,
columns=1,
)
Add button and preview
Copy show_selected_button = Button("Show tags")
tags_preview = Text("", "text")
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.
Copy project_thumbnail = ProjectThumbnail(project_info)
card = Card(
title="TagMetasList",
content=Container(widgets=[project_thumbnail, tag_metas_list, show_selected_button]),
)
layout = Container(widgets=[card])
Create app using layout
Create an app object with layout parameter.
Copy app = sly.Application(layout=layout)
Add button click event to update preview
Copy @show_selected_button.click
def show_selected_tags():
selected_tag_names = tag_metas_list.get_selected_tag_names()
tags_preview.set(" ,".join(selected_tag_names), "text")