gradio组件的选项更新

文章讲述了在创建两个相互关联的下拉菜单时遇到的挑战,主要涉及如何使用gr.Dropdown的update方法动态改变选项,并通过绑定.change事件来实现选择文件夹后更新文件选择下拉菜单的内容。示例代码展示了如何实现这一功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

我有两个下拉栏,第二个下拉栏需要根据第一个选项去更新。

踩的坑:

1、更新操作是使用gr.Dropdown.update(choices=[xxxxxx]),不能直接给choices赋值。

2、必须要给Dropdown对象建立.change()操作,否则下拉栏无法选择选项。

例子:

def upload_ori(test_folder_dropdown):
    test_folder_path = "./"
    return gr.Dropdown.update(choices=os.listdir(os.path.join(test_folder_path,test_folder_dropdown,"image")))

def upload_specific(test_file_dropdown):
    print(test_file_dropdown)
    return test_file_dropdown

with gr.Blocks(theme="freddyaboulton/dracula_revamped") as demo:
    with gr.Row():

        test_folder_dropdown = gr.inputs.Dropdown(choices=subfolders, label="Choose a folder")
        test_file_dropdown = gr.inputs.Dropdown(choices=["请先选择文件夹"],label="you can Choose a file or write a file name")


    test_folder_dropdown.change(fn=upload_ori,inputs=[test_folder_dropdown],outputs=[ test_file_dropdown]) 
    test_file_dropdown.change(fn=upload_specific,inputs=[test_file_dropdown],outputs=[test_file_dropdown])
    

if __name__ == "__main__":
    demo.launch(server_name="0.0.0.0",server_port=6666,debug=True,share=False)

评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值