calvesca's picture
Upload folder using huggingface_hub
0bd62e5 verified
import gradio as gr
with gr.Blocks() as demo:
with gr.Tabs():
with gr.Tab("Set 1"):
with gr.Tabs(selected="a3") as tabs_1:
tabset_1 = []
textset_1 = []
for i in range(10):
with gr.Tab(f"Tab {i+1}", id=f"a{i+1}") as tab:
gr.Markdown(f"Text {i+1}!")
textbox = gr.Textbox(label=f"Input {i+1}")
tabset_1.append(tab)
textset_1.append(textbox)
with gr.Tab("Set 2"):
tabset_2 = []
textset_2 = []
for i in range(10):
with gr.Tab(f"Tab {i+11}") as tab:
gr.Markdown(f"Text {i+11}!")
textbox = gr.Textbox(label=f"Input {i+11}")
tabset_2.append(tab)
textset_2.append(textbox)
for text1, text2 in zip(textset_1, textset_2):
text1.submit(lambda x: x, text1, text2)
selected = gr.Textbox(label="Selected Tab")
with gr.Row():
hide_odd_btn = gr.Button("Hide Odd Tabs")
show_all_btn = gr.Button("Show All Tabs")
make_even_uninteractive_btn = gr.Button("Make Even Tabs Uninteractive")
make_all_interactive_btn = gr.Button("Make All Tabs Interactive")
select_tab_num = gr.Number(label="Select Tab #", value=1)
hide_odd_btn.click(lambda: [gr.Tab(visible=i % 2 == 1) for i, _ in enumerate(tabset_1 + tabset_2)], outputs=(tabset_1 + tabset_2))
show_all_btn.click(lambda: [gr.Tab(visible=True) for tab in tabset_1 + tabset_2], outputs=(tabset_1 + tabset_2))
make_even_uninteractive_btn.click(lambda: [gr.Tab(interactive=i % 2 == 0) for i, _ in enumerate(tabset_1 + tabset_2)], outputs=(tabset_1 + tabset_2))
make_all_interactive_btn.click(lambda: [gr.Tab(interactive=True) for tab in tabset_1 + tabset_2], outputs=(tabset_1 + tabset_2))
select_tab_num.submit(lambda x: gr.Tabs(selected=f"a{x}"), inputs=select_tab_num, outputs=tabs_1)
def get_selected_index(evt: gr.SelectData):
return evt.value
gr.on([tab.select for tab in tabset_1 + tabset_2], get_selected_index, outputs=selected)
if __name__ == "__main__":
demo.launch()