gradio中Dropdown动态修改选项失效,rs_hw始终为空如何解决?
Gradio动态Dropdown选项不显示问题解决
你的代码问题在于直接返回选项列表无法正确更新Dropdown组件的选项。Gradio中要更新组件属性,需要通过gr.update()方法明确指定要修改的参数。
修复方法
修改rs_change函数,返回gr.update(choices=目标选项列表),让Gradio知道要更新Dropdown的choices属性:
import gradio as gr languages = ['spanish', 'english'] homeworks = {'spanish': ['hola', 'bien', 'gracias'], 'english': ['hello', 'good', 'thank you']} def rs_change(rs): # 用gr.update指定要更新的choices属性 return gr.update(choices=homeworks[rs]) with gr.Blocks() as app: rs = gr.Dropdown(choices=languages, label="语言") rs_hw = gr.Dropdown(label="作业选项") rs.change(fn=rs_change, inputs=[rs], outputs=[rs_hw]) app.launch()
额外优化(可选)
如果希望页面加载时就显示对应选项,可以给第一个Dropdown设置默认值:
rs = gr.Dropdown(choices=languages, label="语言", value=languages[0])
这样页面启动时,rs_hw会自动加载对应语言的选项,不用手动选择后才显示。
内容的提问来源于stack exchange,提问作者Procrastinator
相关产品推荐
相关产品推荐

