Gradio学习(五)—————学习一下布局Column的使用

本文介绍了如何在Gradio中使用`gr.Blocks`创建交互式界面,通过`Row`和`Column`组件实现两行两列布局,并控制不同组件如按钮和文本框的缩放比例(scale)。

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

今天学一下布局
非常简单row就是行column就是列
如下就是两行两列
scale就是缩放比例,如下按钮类scale=4,而文本框类scale=1,按钮类显示宽度就是文本框类宽度的四倍

import gradio as gr
with gr.Blocks() as demo:
    with gr.Row():
        with gr.Column(scale=1):
            text1 = gr.Textbox()
            text2 = gr.Textbox()
        with gr.Column(scale=4):
            btn1 = gr.Button("Button 1")
            btn2 = gr.Button("Button 2")
    with gr.Row():
        with gr.Column(scale=1):
            text11 = gr.Textbox()
            text22 = gr.Textbox()
        with gr.Column(scale=4):
            btn11 = gr.Button("Button 1")
            btn22 = gr.Button("Button 2")

demo.launch()
### Gradio Column 组件使用方法 在构建复杂的用户界面时,`Column` 组件允许开发者创建垂直排列的布局结构。这有助于更好地组织应用程序中的不同部分,使得界面更加清晰易读。 #### 创建基本列布局 通过 `gr.Column()` 可以轻松实现这一目标。下面是一个简单例子来展示如何使用此功能: ```python import gradio as gr with gr.Blocks() as demo: with gr.Row(): # 利用Row模块使多个组件位于同一行内[^2] with gr.Column(): text_input = gr.Textbox(label="Input Text Here") btn_submit = gr.Button("Submit") with gr.Column(): output_text = gr.Textbox(label="Output Will Appear Here", interactive=False) demo.launch() ``` 在此示例中,两个 `Column` 被放置在一个 `Row` 中,从而实现了两栏式的布局设计。左侧一栏包含了文本框和按钮;右侧则用于显示处理后的结果。 #### 自定义宽度比例 除了默认均分空间外,还可以指定每列的具体宽度或相对占比。例如设置不同的宽度参数可以改变各列所占屏幕的比例: ```python import gradio as gr with gr.Blocks() as demo: with gr.Row().style(equal_height=True): with gr.Column(scale=1): # 设置左边栏较窄 text_input = gr.Textbox(label="Narrow Input Area") with gr.Column(min_width=400, scale=3): # 设置右边栏更宽,并设定最小宽度 output_markdown = gr.Markdown("# Wide Output Area\nThis area is wider.") demo.launch() ``` 这里展示了如何通过 `scale` 参数控制列之间的相对大小关系,以及怎样应用 `min_width` 来确保某列至少占据一定的视觉区域。 #### 动态更新内容 当涉及到动态加载数据或者响应用户的交互行为时,也可以很方便地操作这些列内的元素。比如点击提交后刷新输出区的内容: ```python def process_and_update(input_string): processed_data = f"You entered: {input_string}" return processed_data with gr.Blocks() as demo: with gr.Row(): with gr.Column(): input_field = gr.Textbox(label="Enter Something:") submit_button = gr.Button("Go!") with gr.Column(): result_display = gr.Textbox(label="Result:", value="", interactive=False).update() submit_button.click(process_and_update, inputs=[input_field], outputs=[result_display]) demo.launch() ``` 上述代码片段说明了如何监听按钮事件并将新值赋给另一个控件,以此达到实时反馈的效果。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值