Introducing Gradio Clients


New to Gradio? Start here: Getting Started

See the Release History




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 {}", None, statement), None, statement), None, statement)


Parameter Description

Block | None


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


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"), None, gallery) def get_select_index(evt: gr.SelectData): return evt.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, [imgs, selected], [imgs, gallery]) if __name__ == "__main__": demo.launch()