Shiny for Python (dev version)
  • Express API
  • Core API
  • Testing API

On this page

  • ui.input_action_link
    • Parameters
    • Returns
    • Notes
    • See Also
    • Examples
  • Report an issue

ui.input_action_link

ui.input_action_link(id, label, *, icon=None, **kwargs)

Creates a link whose value is initially zero, and increments by one each time it is pressed.

Parameters

id : str

An input id.

label : TagChild

An input label.

icon : TagChild = None

An icon to appear inline with the button/link.

****kwargs** : TagAttrValue = {}

Attributes to be applied to the link.

Returns

: Tag

A UI element

Notes

Server value

An integer representing the number of clicks.

See Also

  • update_action_link
  • input_action_button
  • event

Examples

#| standalone: true
#| components: [editor, viewer]
#| layout: vertical
#| viewerHeight: 400

## file: app.py
import matplotlib.pyplot as plt
import numpy as np

from shiny import App, Inputs, Outputs, Session, reactive, render, ui

app_ui = ui.page_fluid(
    ui.input_slider("n", "Number of observations", min=0, max=1000, value=500),
    ui.input_action_link("go", "Go!"),
    ui.output_plot("plot"),
)


def server(input: Inputs, output: Outputs, session: Session):
    @render.plot(alt="A histogram")
    # reactive.event() to invalidate the plot when the button is pressed but not when
    # the slider is changed
    @reactive.event(input.go, ignore_none=False)
    def plot():
        np.random.seed(19680801)
        x = 100 + 15 * np.random.randn(input.n())
        fig, ax = plt.subplots()
        ax.hist(x, bins=30, density=True)
        return fig


app = App(app_ui, server)

  • Report an issue