- Blocks 布局
- 渲染
渲染
@gr.render(inputs=···)
def hello(···):
... 描述
render 装饰器允许 Gradio Blocks 应用程序拥有动态布局,使应用程序中的组件和事件监听器可以根据自定义逻辑进行更改。将 @gr.render 装饰器附加到函数上,将导致该函数在输入更改时(或指定触发器激活时)重新运行。该函数包含将根据输入更新的组件和事件监听器。使用 render,您可以:
- 显示或隐藏组件
- 更改文本或布局
- 根据用户输入创建组件
@gr.render 的基本用法如下:
1. 创建一个函数并附加 @gr.render 装饰器。
2. 将输入组件添加到 @gr.render 的 inputs= 参数中,并在函数中为每个组件创建一个相应的参数。
3. 在函数内部添加所有您希望根据输入更新的组件。使用这些组件的任何事件监听器也应位于此函数内部。
示例用法
import gradio as gr
with gr.Blocks() as demo:
textbox = gr.Textbox(label="Enter text")
@gr.render(inputs=textbox)
def show_message(text):
if not text:
gr.Markdown("Please enter some text.")
else:
gr.Markdown(f"You entered: {text}")
demo.launch()初始化
参数
triggers: list[EventListenerCallable] | EventListenerCallable | None
triggers: list[EventListenerCallable] | EventListenerCallable | None默认
= None要监听的触发器列表,例如 [btn.click, number.change]。如果为 None,将监听任何输入的更改。
queue: bool
queue: bool默认
= True如果为 True,则会将请求放在队列中(如果队列已启用)。如果为 False,则不会将此事件放入队列,即使队列已启用。如果为 None,则将使用 Gradio 应用的队列设置。
trigger_mode: Literal['once', 'multiple', 'always_last'] | None
trigger_mode: Literal['once', 'multiple', 'always_last'] | None默认值
= "always_last"如果设置为 "once"(除 `.change()` 之外所有事件的默认值),则在事件挂起时不允许任何提交。如果设置为 "multiple",则在事件挂起时允许无限次提交,而 "always_last"(`.change()` 和 `.key_up()` 事件的默认值)则允许在挂起事件完成后进行第二次提交。
concurrency_limit: int | None | Literal['default']
concurrency_limit: int | None | Literal['default']默认
= None如果设置,这是可以同时运行的此事件的最大数量。可以设置为 None,表示没有并发限制(此事件可以同时运行任意数量)。设置为 "default" 可使用 `Blocks.queue()` 中的 `default_concurrency_limit` 参数定义的默认并发限制(该参数本身默认为 1)。