You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何获取Gradio中TextArea组件的当前文本值?

如何获取Gradio TextArea的当前输入值

直接访问input1.value只能拿到初始化时的默认值,Gradio组件的实时输入值必须通过事件回调机制获取,以下是两种常用实现方式:

1. 绑定事件回调函数获取

这是Gradio的标准用法,比如通过按钮点击触发回调,接收TextArea的当前值:

import gradio as gr

example = "默认文本"
input1 = gr.TextArea(label="Text (100 words max)", value=example, elem_id="input1")

def get_current_text(text):
    # 函数参数text即为TextArea的当前输入内容
    return f"当前输入:{text}"

with gr.Blocks() as demo:
    input1
    get_btn = gr.Button("获取当前值")
    result_box = gr.Textbox()
    get_btn.click(fn=get_current_text, inputs=input1, outputs=result_box)

demo.launch()
  • 核心逻辑:触发事件(如按钮点击)时,Gradio会自动将绑定组件的当前值传入回调函数的对应参数,无需手动读取组件属性。

2. 用gr.State同步并获取实时值

如果需要在多个场景下共享或随时获取输入值,可以通过gr.State组件同步TextArea的实时内容:

import gradio as gr

example = "默认文本"

with gr.Blocks() as demo:
    input_state = gr.State(value=example)
    input1 = gr.TextArea(label="Text (100 words max)", value=example, elem_id="input1")
    
    # 实时同步输入内容到State
    input1.change(fn=lambda x: x, inputs=input1, outputs=input_state)
    
    def fetch_current_value(state):
        return f"当前输入值:{state}"
    
    get_btn = gr.Button("获取当前值")
    result_box = gr.Textbox()
    get_btn.click(fn=fetch_current_value, inputs=input_state, outputs=result_box)

demo.launch()
  • 核心逻辑:通过input1.change事件监听输入变化,每次内容更新时同步到gr.State,后续可通过回调读取State中的实时值。

注意:组件对象的.value属性仅存储初始化时的默认值,运行时用户的输入不会更新该属性,因此不能通过它获取实时内容。

内容的提问来源于stack exchange,提问作者sooyeon

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.03 20:40:55