Copy to Clipboard

Introduction

CopyToClipboard widget allows you to wrap your widgets (Editor, Text, TextArea, or Input) and str text with a copy button. This enables you to easily obtain the value of the wrapped content and copy it to your clipboard.

Function signature

CopyToClipboard(
    content="", 
    widget_id=None
)

Parameters

ParametersTypeDescription

content

Union[Editor, Text, TextArea, Input, str]

CopyToClipboard content

widget_id

str

Id of the widget

content

Determine input CopyToClipboard content.

type: Union[Editor, Text, TextArea, Input, str]

default value: ""

copy_to_clipboard = CopyToClipboard(content="Some text to copy")

widget_id

ID of the widget.

type: str

default value: None

Methods and attributes

Attributes and MethodsDescription

get_content()

Return wrapped content (i.e. widget or str)

Mini App Example

You can find this example in our Github repository:

supervisely-ecosystem/ui-widgets-demos/text elements/004_copy_to_clipboard/src/main.py

Import libraries

import os

import supervisely as sly
from dotenv import load_dotenv
from supervisely.app.widgets import (
    Card,
    Container,
    CopyToClipboard,
    Editor,
    Text,
    TextArea,
    Input,
)

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()

Initialize different inputs

editor = Editor('{ "Editor": 42 }', show_line_numbers=True)
input = Input(value="Input", size="large")
text = Text(text="Text", status="success")
text_area = TextArea(value="TextArea")
string = "Some string"

copytoclipboard1 = CopyToClipboard(content=editor)
copytoclipboard2 = CopyToClipboard(content=input)
copytoclipboard3 = CopyToClipboard(content=text)
copytoclipboard4 = CopyToClipboard(content=text_area)
copytoclipboard5 = CopyToClipboard(content=string)

Create app layout

Prepare a layout for an app using Card widget with the content parameter and place widget that we've just created in the Container widget.

card = Card(
    title="Copy To Clipboard",
    content=Container(
        [
            copytoclipboard1,
            copytoclipboard2,
            copytoclipboard3,
            copytoclipboard4,
            copytoclipboard5,
        ]
    ),
)
layout = Container(widgets=[card], direction="vertical")

Create an app using a layout

Create an app object with a layout parameter.

app = sly.Application(layout=layout)

Last updated