New to Gradio? Start here: Getting Started
See the Release History
gradio.Button(Β·Β·Β·)
Description
Used to create a button, that can be assigned arbitrary click() events. The label (value) of the button can be used as an input or set via the output of a function.
Behavior
As input: passes the button value as a str into the function
As output: expects a str to be returned from a function, which is set as the label of the button
Initialization
Parameter | Description |
---|---|
value
str | Callable default: "Run" |
Default text for the button to display. If callable, the function will be called whenever the app loads to set the initial value of the component. |
variant
Literal['primary', 'secondary', 'stop'] default: "secondary" |
'primary' for main call-to-action, 'secondary' for a more subdued style, 'stop' for a stop button. |
size
Literal['sm', 'lg'] | None default: None |
Size of the button. Can be "sm" or "lg". |
visible
bool default: True |
If False, component will be hidden. |
interactive
bool default: True |
If False, the Button will be in a disabled state. |
elem_id
str | None default: None |
An optional string that is assigned as the id of this component in the HTML DOM. Can be used for targeting CSS styles. |
elem_classes
list[str] | str | None default: None |
An optional list of strings that are assigned as the classes of this component in the HTML DOM. Can be used for targeting CSS styles. |
scale
int | None default: None |
relative width compared to adjacent Components in a Row. For example, if Component A has scale=2, and Component B has scale=1, A will be twice as wide as B. Should be an integer. |
min_width
int | None default: None |
minimum pixel width, will wrap if not sufficient screen space to satisfy this value. If a certain scale value results in this Component being narrower than min_width, the min_width parameter will be respected first. |
Shortcuts
Class | Interface String Shortcut | Initialization |
---|---|---|
|
"button" |
Uses default values |
|
"clearbutton" |
Uses default values |
|
"duplicatebutton" |
Uses default values |
Demos
import gradio as gr
import os
def combine(a, b):
return a + " " + b
def mirror(x):
return x
with gr.Blocks() as demo:
txt = gr.Textbox(label="Input", lines=2)
txt_2 = gr.Textbox(label="Input 2")
txt_3 = gr.Textbox(value="", label="Output")
btn = gr.Button(value="Submit")
btn.click(combine, inputs=[txt, txt_2], outputs=[txt_3])
with gr.Row():
im = gr.Image()
im_2 = gr.Image()
btn = gr.Button(value="Mirror Image")
btn.click(mirror, inputs=[im], outputs=[im_2])
gr.Markdown("## Text Examples")
gr.Examples(
[["hi", "Adam"], ["hello", "Eve"]],
[txt, txt_2],
txt_3,
combine,
cache_examples=True,
)
gr.Markdown("## Image Examples")
gr.Examples(
examples=[os.path.join(os.path.dirname(__file__), "lion.jpg")],
inputs=im,
outputs=im_2,
fn=mirror,
cache_examples=True,
)
if __name__ == "__main__":
demo.launch()
Methods
gradio.Button.click(fn, Β·Β·Β·)
Description
This listener is triggered when the component (e.g. a button) is clicked. This method can be used when this component is in a Gradio Blocks.
Agruments
Parameter | Description |
---|---|
fn
Callable | None required |
the function to wrap an interface around. Often a machine learning model's prediction function. Each parameter of the function corresponds to one input component, and the function should return a single value or a tuple of values, with each element in the tuple corresponding to one output component. |
inputs
Component | list[Component] | set[Component] | None default: None |
List of gradio.components to use as inputs. If the function takes no inputs, this should be an empty list. |
outputs
Component | list[Component] | None default: None |
List of gradio.components to use as outputs. If the function returns no outputs, this should be an empty list. |
api_name
str | None | Literal[False] default: None |
Defines how the endpoint appears in the API docs. Can be a string, None, or False. If False, the endpoint will not be exposed in the api docs. If set to None, the endpoint will be exposed in the api docs as an unnamed endpoint, although this behavior will be changed in Gradio 4.0. If set to a string, the endpoint will be exposed in the api docs with the given name. |
status_tracker
None default: None |
|
scroll_to_output
bool default: False |
If True, will scroll to output component on completion |
show_progress
Literal['full', 'minimal', 'hidden'] default: "full" |
If True, will show progress animation while pending |
queue
bool | None default: None |
If True, will place the request on the queue, if the queue has been enabled. If False, will not put this event on the queue, even if the queue has been enabled. If None, will use the queue setting of the gradio app. |
batch
bool default: False |
If True, then the function should process a batch of inputs, meaning that it should accept a list of input values for each parameter. The lists should be of equal length (and be up to length `max_batch_size`). The function is then *required* to return a tuple of lists (even if there is only 1 output component), with each list in the tuple corresponding to one output component. |
max_batch_size
int default: 4 |
Maximum number of inputs to batch together if this is called from the queue (only relevant if batch=True) |
preprocess
bool default: True |
If False, will not run preprocessing of component data before running 'fn' (e.g. leaving it as a base64 string if this method is called with the `Image` component). |
postprocess
bool default: True |
If False, will not run postprocessing of component data before returning 'fn' output to the browser. |
cancels
dict[str, Any] | list[dict[str, Any]] | None default: None |
A list of other events to cancel when This listener is triggered. For example, setting cancels=[click_event] will cancel the click_event, where click_event is the return value of another components .click method. Functions that have not yet run (or generators that are iterating) will be cancelled, but functions that are currently running will be allowed to finish. |
every
float | None default: None |
Run this event 'every' number of seconds while the client connection is open. Interpreted in seconds. Queue must be enabled. |