前言:在使用Gradio开发界面时,使用Blocks比Interface更加灵活。但是博主在实际的开发过程中,发现网上有关Block的相关教程很少,而Block的官方文档又比较晦涩难懂,因此创作了此系列教程,希望能帮助到大家。
效果:
按键先为A,单击后转为B
按键为B,单击后转为C
按键为C,单击后转为A
代码:
import gradio as gr
#visible=False表示按键消失, visible=True表示按键显示
def A():
return gr.update(visible=False), gr.update(visible=True)
def B():
return gr.update(visible=False), gr.update(visible=True)
def C():
return gr.update(visible=False), gr.update(visible=True)
with gr.Blocks() as demo:
with gr.Row():
with gr.Column(scale=1,min_width=1):
A_Btn = gr.Button("A,单击转为B")
B_Btn = gr.Button("B,单击转为C",visible=False) #按键B、C先设置为隐藏
C_Btn = gr.Button("C,单击转为A",visible=False) #按键B、C先设置为隐藏
#按键的触发
A_Btn.click(fn=A,outputs=[A_Btn, B_Btn])
B_Btn.click(fn=B,outputs=[B_Btn, C_Btn])
C_Btn.click(fn=C,outputs=[C_Btn, A_Btn])
demo.queue().launch(share=False, inbrowser=True)