Introducing Gradio ClientsJoin us on Thursday, 9am PST

Livestream

New to Gradio? Start here: Getting Started

See the Release History

EventData

gradio.EventData(ยทยทยท)

Description

When a subclass of EventData is added as a type hint to an argument of an event listener method, this object will be passed as that argument. It contains information about the event that triggered the listener, such the target object, and other data related to the specific event that are attributes of the subclass.

Example Usage

table = gr.Dataframe([[1, 2, 3], [4, 5, 6]])
gallery = gr.Gallery([("cat.jpg", "Cat"), ("dog.jpg", "Dog")])
textbox = gr.Textbox("Hello World!")

statement = gr.Textbox()

def on_select(evt: gr.SelectData):  # SelectData is a subclass of EventData
    return f"You selected {evt.value} at {evt.index} from {evt.target}"

table.select(on_select, None, statement)
gallery.select(on_select, None, statement)
textbox.select(on_select, None, statement)

Initialization

Parameter Description
target

Block | None

required

The target object that triggered the event. Can be used to distinguish if multiple components are bound to the same listener.

Demos

import gradio as gr import numpy as np with gr.Blocks() as demo: imgs = gr.State() gallery = gr.Gallery(allow_preview=False) def deselect_images(): return gr.Gallery(selected_index=None) def generate_images(): images = [] for _ in range(9): image = np.ones((100, 100, 3), dtype=np.uint8) * np.random.randint( 0, 255, 3 ) # image is a solid single color images.append(image) return images, images demo.load(generate_images, None, [gallery, imgs]) with gr.Row(): selected = gr.Number(show_label=False) darken_btn = gr.Button("Darken selected") deselect_button = gr.Button("Deselect") deselect_button.click(deselect_images, None, gallery) def get_select_index(evt: gr.SelectData): return evt.index gallery.select(get_select_index, None, selected) def darken_img(imgs, index): index = int(index) imgs[index] = np.round(imgs[index] * 0.8).astype(np.uint8) return imgs, imgs darken_btn.click(darken_img, [imgs, selected], [imgs, gallery]) if __name__ == "__main__": demo.launch()