import gradio as gr | |
def update_dropdown(class_prefix): | |
# Check if a class prefix is selected | |
if class_prefix is None: | |
# If no class is selected, return an empty list | |
return [] | |
else: | |
# Generate student numbers for the selected class | |
return [f"{class_prefix}{str(i).zfill(2)}" for i in range(1, 41)] | |
# Define the options for the first dropdown | |
class_options = ["5H", "5E", "5RS"] | |
# Create the Gradio interface | |
with gr.Blocks() as demo: | |
class_dropdown = gr.Dropdown(label="Class", choices=class_options, value="5H") | |
student_dropdown = gr.Dropdown(label="Student", choices=update_dropdown("5H")) | |
# When the selected class changes, update the student dropdown | |
class_dropdown.change(fn=update_dropdown, inputs=[class_dropdown], outputs=[student_dropdown]) | |
# Launch the app | |
demo.launch() |