Introduction
Tags List Preview
widget simply displays a list of tags. It can be used to display tags that were selected by the user in the Tags List Selector widget for example.
Function signature
Copy tags_list_preview = TagsListPreview(
tag_metas=tag_metas,
max_width=300,
empty_text=None,
widget_id=None,
)
Parameters
Parameters
Type
Description
Union[List[ObjClass], ObjClassCollection]
Supervisely tag meta collection or list of tag metas
Text that will be displayed when there are no tags in widget
tag_metas
List of TagMeta
objects or Supervisely tag meta collection (TagMetaCollection
).
type: Union[List[TagMeta], TagMetaCollection]
Copy tags_list_preview = TagsListPreview(
tag_metas=tag_metas
)
max_width
Set the maximum width of the widget in pixels.
type: int
default 300
Copy tags_list_preview = TagsListPreview(
tag_metas=tag_metas,
max_height="100px"
)
empty_text
Text that will be displayed when there are no tags in widget
type: str
default None
Copy empty_text = "No tags selected"
tags_list_preview = TagsListPreview(
tag_metas=[]
empty_text=empty_text,
)
widget_id
ID of the widget.
type: str
default value: None
Methods and attributes
Attributes and Methods
Description
Mini App Example
In this example we will create a mini app with TagsListPreview
widget. We will create a TagsListSelector
widget and display selected tags with TagsListPreview
widget.
You can find this example in our Github repository:
supervisely-ecosystem/ui-widgets-demos/media/018_tags_list_preview/src/main.py
Import libraries
Copy import os
import supervisely as sly
from supervisely.app.widgets import (
Card,
Container,
TagsListPreview,
TagsListSelector,
Text,
)
from dotenv import load_dotenv
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()
Create list of tag metas and init TagsListSelector
widget
Copy cat_tag_meta = sly.TagMeta("cat", sly.TagValueType.NONE)
dog_tag_meta = sly.TagMeta("dog", sly.TagValueType.ANY_NUMBER)
horse_tag_meta = sly.TagMeta("horse", sly.TagValueType.ANY_STRING)
cow_tag_meta = sly.TagMeta("cow", sly.TagValueType.ONEOF_STRING, possible_values=["moo", "mooo"])
zebra_tag_meta = sly.TagMeta("zebra", sly.TagValueType.NONE)
tag_metas = [
cat_tag_meta,
dog_tag_meta,
horse_tag_meta,
cow_tag_meta,
zebra_tag_meta,
]
tags_list_selector = TagsListSelector(tag_metas, multiple=True)
Initialize TagsListPreview
widget and Text
widget for displaying number of selected tags
Copy empty_text = Text("No tags selected", "text")
tags_list_preview = TagsListPreview(empty_text=empty_text)
preview_text = Text(f"Selected Tags: 0 / {len(tag_metas)}", "text")
preview_container = Container([preview_text, tags_list_preview])
Create app layout
Prepare a layout for app using Card
widget with the content
parameter and place widgets that we've previously created into the Container
widget.
Copy container = Container(widgets=[tags_list_selector, preview_container])
card = Card(
title="Tags List Preview",
content=container,
)
layout = card
Create app using layout
Create an app object with layout parameter.
Copy app = sly.Application(layout=layout)
Add functions to control widgets from python code
Copy @tags_list_selector.selection_changed
def on_selection_changed(selected_tags):
preview_text.set(f"Selected Tags: {len(selected_tags)} / {len(tag_metas)}", "text")
tags_list_preview.set(selected_tags)