Skip to main content
Test and Release

Trame-dockview extend trame widgets with dockview capabilities tuned so it can easily be used within trame. Dockview is a fully featured Docking Layout Manager with customizable themes and controls.

This package is not supposed to be used by itself but rather should come as a dependency of trame. For any specificity, please refer to the trame documentation.

Example of dockview usage

Installing

trame-dockview can be installed with pip:

pip install --upgrade trame-dockview

Usage

The Trame Tutorial is the place to go to learn how to use the library and start building your own application.

The API Reference documentation provides API-level documentation.

The Dockview website is very well made for exploring capabilities that the library is providing.

DockView Widget

First you need to import the dockview module so you can instantiate the layout manager like illustrated below.

from trame.app import TrameApp
from trame.ui.html import DivLayout
from trame.ui.vuetify3 import SinglePageLayout
from trame.widgets import dockview, html
from trame.widgets import vtk as vtk_widgets
from trame.widgets import vuetify3 as v3

THEMES = [
    "Abyss",
    "AbyssSpaced",
    "Dark",
    "Dracula",
    "Light",
    "LightSpaced",
    "VisualStudio",
]


class Demo(TrameApp):
    def __init__(self, server=None):
        super().__init__(server)
        self._panel_count = 0
        self._build_ui()

        # init vtk.js
        vtk_widgets.VtkView(trame_server=server)

    def _build_ui(self):
        with SinglePageLayout(self.server, full_height=True) as self.ui:
            with self.ui.toolbar:
                v3.VSpacer()
                v3.VSelect(
                    v_model=("theme", "Abyss"),
                    items=("themes", THEMES),
                    hide_details=True,
                    density="compact",
                    style="max-width:200px;",
                )
                v3.VBtn(icon="mdi-plus", click=self.add_panel, density="compact")

            with self.ui.content:
                with v3.VContainer(classes="pa-0 ma-0 fill-height", fluid=True):
                    dockview.DockView(
                        ctx_name="dock_view",
                        theme=("theme",),
                    )

    def add_panel(self):
        self._panel_count += 1
        panel_id = f"panel_{self._panel_count}"
        title = f"Panel {self._panel_count}"
        template_name = f"dock_{panel_id}"
        resolution_key = f"{template_name}_resolution"

        with DivLayout(self.server, template_name) as layout:
            layout.root.style = "height:100%;position:relative;"
            with vtk_widgets.VtkView() as view:
                with html.Div(
                    style="position:absolute;top:1rem;right:1rem;z-index:1;display:flex;flex-align:center;"
                ):
                    html.Input(
                        type="range",
                        v_model_number=(resolution_key, 6),
                        min=3,
                        max=60,
                        step=1,
                    )
                    html.Button(
                        "Reset",
                        style="padding:0 5px;margin:10px;background:white;",
                        click=view.reset_camera,
                    )

                with vtk_widgets.VtkGeometryRepresentation():
                    vtk_widgets.VtkAlgorithm(
                        vtk_class="vtkConeSource",
                        state=(f"{{ resolution: {resolution_key} }}",),
                    )

        self.ctx.dock_view.add_panel(panel_id, title, template_name)


def main():
    app = Demo()
    app.server.start()


if __name__ == "__main__":
    main()

License

trame-dockview is made available under the MIT License. For more details, see LICENSE This license has been chosen to match the one use by DockView License which is instrumental for making that library possible.

Community

Trame | Discussions | Issues | Contact Us

https://zenodo.org/badge/410108340.svg

Enjoying trame?

Share your experience with a testimonial or with a brand approval.

JavaScript dependency

This Python package bundles the following dockview-vue@7.0.4 library. If you would like us to upgrade its dependency or expose more capabilities provided by the underlying library, please reach out.

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

trame_dockview-2.0.0.tar.gz (93.4 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

trame_dockview-2.0.0-py3-none-any.whl (95.5 kB view details)

Uploaded Python 3

File details

Details for the file trame_dockview-2.0.0.tar.gz.

File metadata

  • Download URL: trame_dockview-2.0.0.tar.gz
  • Upload date:
  • Size: 93.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for trame_dockview-2.0.0.tar.gz
Algorithm Hash digest
SHA256 e99a13c7bc2d3a8a6913fc66e8a5415230295a0b15e2031963db9e9a6ed5e24b
MD5 c7d9d867b61e570fcec9934da1ae9d02
BLAKE2b-256 ad76cfe3fa25acc78b011d29b630bd68e17f0ce23e9d8e23814c02f4d0dd1655

See more details on using hashes here.

Provenance

The following attestation bundles were made for trame_dockview-2.0.0.tar.gz:

Publisher: test_and_release.yml on Kitware/trame-dockview

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file trame_dockview-2.0.0-py3-none-any.whl.

File metadata

  • Download URL: trame_dockview-2.0.0-py3-none-any.whl
  • Upload date:
  • Size: 95.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for trame_dockview-2.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 aba4e14c8ba9684fdbe44b0d2f98b567ef60e8b3aa163a239f28db53c0af0f04
MD5 61ea7db2fb29403b7b5517f5e6189271
BLAKE2b-256 72ed2dfcb6f4e35cc281a23450be1079f6a21b505830de08b027dbaaa083a2a7

See more details on using hashes here.

Provenance

The following attestation bundles were made for trame_dockview-2.0.0-py3-none-any.whl:

Publisher: test_and_release.yml on Kitware/trame-dockview

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Release history Release notifications | RSS feed

This release

2.0.0 This release

2 files

1.4.0

2 files

1.3.2

2 files

1.3.0

2 files

1.2.2

2 files

1.2.1

2 files

1.2.0

2 files

1.1.0

2 files

1.0.3

2 files

1.0.0

2 files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page