Gradio之blocks灵活搭建页面

news2024/12/26 10:54:53

这里写目录标题

  • 搭建一个UI界面
    • 搭建上半部分的框架
    • 比例调节以及其他效果
    • 搭建下半部分左边部分
    • 搭建下半部分右边部分
    • 拓展-CSS的应用
  • 使用标签搭建第二个页面
    • 示例
  • 补充
    • Accordion
    • Group()

搭建一个UI界面

搭建上半部分的框架

如下图,我们想要基本还原下图右边的UI界面,首先搭建上半部分
在这里插入图片描述
导包之后,
第一个with,要with上Blocks,并重命名:
with gr.Tab(label=“txt.img”):
(之后,这里是创建了一个标签,就是右图中那个一整个页面的底层,可以看到当前在第一个标签下,而label的值,就是标签上标注)
with gr.Row():
(从这里开始,要进行布局了,基本上每个页面都是由多个行布局和列布局交错配合形成的,这里,上半部分整体是一个水平布局,所以,以Row引导)
with gr.Column():

with gr.Column():

with gr.Column():

(之后三个垂直布局,因为在整个水平布局里面,可以拆分为三个垂直布局,这三个布局会水平放置,因为他们在水平布局之下)
第一个垂直布局里面,加了两个文本框(属性lines表示其高度,label是其原始标注内容)
第二个垂直布局里面,加了四个按钮(属性value是其原始标注内容)
第三个垂直布局里面:
gr.Button(value=“Generate”)
(首先是一个按钮,value是其原始标注内容)
with gr.Row():
(之后是一个水平布局,说明在按钮下面是一个水平布局)
将两个下拉框放入水平布局(属性第一个参数是数组,表示下拉框的选项;第二个参数是label,是其上方的原始标注内容)

最终呈现的效果如下图:
在这里插入图片描述

比例调节以及其他效果

可以看到,我们目前搭建出来的,是三个垂直布局五五开的效果,而我们的目标图并不是这样,所以,需要进行比例的微调
在这里插入图片描述
对于垂直布局,他有一个属性:scale,他可以调节与之相邻的垂直布局的比例,比如,上面这种写法,就是15:1:6的比例布局
,那么效果是:
在这里插入图片描述
可以看到,第二个垂直布局和第三个垂直布局,似乎还是五五开的状态。接下来解决这个问题:

出现这个问题主要是因为很多组件都有他的最小宽度,比如,我们ctrl+左键,进入Textbox组件内,可以看到其最小宽度是160
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
同样的,对于column,也有他的最小宽度。
在这里插入图片描述
所以,我们在这里调整其最小宽度,只要保证最小宽度比我们想要设置的宽度小就可以了,我们调为1,就已经是最小的宽度了,基本上调为1之后,不会限制任何比例对宽度的下调了

最后的效果是这样:
在这里插入图片描述
但是Generate这个按钮,他的颜色,包括他的高度,都需要进行调整:
在这里插入图片描述
首先,对其variant属性进行设置,设置为primary,之后设置其scale=1(可以让其撑大其高度)
tips:我们可以通过ctrl+左键,进入variant中,查看可以设置为哪些值,以及其默认值是谁,如下图
在这里插入图片描述

搭建下半部分左边部分

在这里插入图片描述

可以看到上来就是一个Row,
(表明,下半部分整个是个水平布局)
with gr.Column():
(水平布局里面整体分为两个垂直布局,现在是第一个垂直布局)
而在该垂直布局里面,是多个水平布局的堆积
with gr.Row():

with gr.Row():

with gr.Row():

checkboxgroup
dropdown4
(在诸多水平布局之间,混入了几个没有写任何布局的组件,那是因为该行就那一个组件,所以,在只有一个组件,且目前在垂直布局的大引导下,也就无需再写一个水平布局了,但是还是建议写上,便于代码的阅读和维护)

搭建下半部分右边部分

在这里插入图片描述

可以看到,最后的效果,有一点小bug,因为那一行六个按钮,本来是写在一个row内的,也就是本就是一行,现在怎么会变成两行,
问题还是那个,每个按钮有他的最小宽度,我们设置其最小宽度为1,就不会干扰我们的设置了:
在这里插入图片描述

拓展-CSS的应用

在这里插入图片描述
我们现在有一个css文件,对样式进行更加深度的自定义,例如,上图中利用css,对所有样式名为btn的组件,进行css样式设置
在这里插入图片描述
我们在blocks内,将css加载进来,之后对四个按钮设置其样式名,用属性elem_classes=“btn”,这样,这四个按钮,就可以生效css中.btn的设置了,效果如下图:
在这里插入图片描述

使用标签搭建第二个页面

示例

在这里插入图片描述
在第一个Tab之后,
with gr.Tab(label=“标注”):
可以生成第二个标签,这样,点击第二个标签,他就是一个全新的页面,如下图:
在这里插入图片描述

补充

Accordion

使用方法:
with gr.Accordion():
在这里插入图片描述
在with gr.Accordion():下面的组件,可以被选择被展示还是隐藏:
在这里插入图片描述

在这里插入图片描述

Group()

在这里插入图片描述
在六个按钮之前放一个组,该组内有两个按钮,我们来看看什么效果:
在这里插入图片描述
可以看到两个button捏在一起了

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1649793.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

PVZ2 植物克僵尸【第二期】

众所周知,PVZ2(植物大战僵尸2)中有许多恶心的僵尸,而我们不得不派出它们的————克星!(*为建议方法) 5.战机小鬼 战机小鬼,恶心会发射子弹,所以: 1&…

【华为OD机试】攀登者2(C++/Java/Python)

【华为OD机试】-(A卷+B卷+C卷+D卷)-2024真题合集目录 【华为OD机试】-(C卷+D卷)-2024最新真题目录 题目描述 攀登者喜欢寻找各种地图,并且尝试攀登到最高的山峰。 地图表示为一维数组,数组的索引代表水平位置,数组的元素代表相对海拔高度。其中数组元素0代表地面。 例如:[…

[Java EE] 多线程(九):ReentrantLock,Semaphore,CountDownLatch与线程安全的集合类(多线程完结)

🌸个人主页:https://blog.csdn.net/2301_80050796?spm1000.2115.3001.5343 🏵️热门专栏:🍕 Collection与数据结构 (91平均质量分)https://blog.csdn.net/2301_80050796/category_12621348.html?spm1001.2014.3001.5482 🧀Java …

力扣437. 路径总和 III

Problem: 437. 路径总和 III 文章目录 题目描述思路复杂度Code 题目描述 思路 1.定义int类型函数rootSum(root, targetSum),用于求取每一个节点等于目标函数的路径数: 1.1.易知rootSum(root, targetSum)求出的数量等于rootSum(root.left, targetSum - va…

智慧公厕建设,打造智慧城市基础设施新亮点

公共厕所是城市基础设施的重要组成部分,而智慧公厕的建设则是现代城市管理的创新之举。为了实现公厕的精细化管理和提供更便捷的服务,推进智慧公厕建设必须要实现技术融合、业务融合、数据融合的目标,跨越层级、地域、系统、部门和业务的限制…

LeetCode:盛最多水的容器

文章收录于LeetCode专栏 盛最多水的容器 给你n个非负整数a1,a2,…,an,每个数代表坐标中的一个点(i, ai) 。在坐标内画 n 条垂直线,垂直线i的两个端点分别为(i, ai) 和 (i, 0)。找出其中的两条线,使得它们与…

自动化运维管理工具----------Ansible模块详细解读

目录 一、自动化运维工具有哪些? 1.1Chef 1.2puppet 1.3Saltstack 二、Ansible介绍 2.1Ansible简介 2.2Ansible特点 2.3Ansible工作原理及流程 2.3.1内部流程 2.3.2外部流程 三、Ansible部署 3.1环境准备 3.2管理端安装 ansible 3.3Ansible相关文件 …

机器学习第二天(监督学习,无监督学习,强化学习,混合学习)

1.是什么 基于数据寻找规律从而建立关系,进行升级,如果是以前的固定算式那就是符号学习了 2.基本框架 3.监督学习和无监督式学习: 监督学习:根据正确结果进行数据的训练; 在监督式学习中,训练数据包括输…

《Python编程从入门到实践》day21

# 昨日知识点回顾 设置背景颜色 在屏幕中央绘制飞船 # 今日知识点学习 12.5 重构:方法_check_events()和_update_screen() 12.5.1 方法_check_events() import sys import pygame from Settings import Settings from Ship import Shipclass AlienInvasion:"…

Day1| Java基础 | 1 面向对象特性

Day1 | Java基础 | 1 面向对象特性 基础补充版Java中的开闭原则面向对象继承实现继承this和super关键字修饰符Object类和转型子父类初始化顺序 多态一个简单应用在构造方法中调用多态方法多态与向下转型 问题回答版面向对象面向对象的三大特性是什么?多态特性你是怎…

基于Springboot+Vue的Java项目-鲜牛奶订购系统开发实战(附演示视频+源码+LW)

大家好!我是程序员一帆,感谢您阅读本文,欢迎一键三连哦。 💞当前专栏:Java毕业设计 精彩专栏推荐👇🏻👇🏻👇🏻 🎀 Python毕业设计 &am…

matplotlib和pandas与numpy

1.matplotlib介绍 一个2D绘图库; 2.Pandas介绍: Pandas一个分析结构化数据的工具; 3.NumPy 一个处理n纬数组的包; 4.实践:绘图matplotlip figure()生成一个图像实例 %matplotlib inline:图形直接在…

​​【收录 Hello 算法】3.3 数字编码

目录 3.3 数字编码 3.3.1 原码、反码和补码 3.3.2 浮点数编码 3.3 数字编码 Tip 在本书中,标题带有 * 符号的是选读章节。如果你时间有限或感到理解困难,可以先跳过,等学完必读章节后再单独攻克。 3.3.1 原码、反码和补码 在…

重装win11系统后找不到WiFi

由于电脑崩溃重装了系统,win11,装完之后WiFi图标不见了且网络适配器根本没有无线网络选项。 右键电脑》管理》网络适配器。 在刚装好系统时候并没有前两项,查了很多资料,比如 关机14s 重启,还有通过服务配置 WLAN AutoConfig 都…

值得收藏!修复Windows 10/11中找不到输出或输入设备的五种方法

序言 这篇文章主要关注处理声音输出/输入设备未发现的问题。它提供了许多可行的方法,帮助了许多Windows用户。阅读以下内容以找到你的解决方案。 最近,我将Windows 10更新到21H2,发现我的音频无法工作。当我把鼠标放在任务栏上的声音图标(上面有一个十字图标)上时,它会…

word:三线表的绘制【攻略】

word:三线表的绘制【攻略】 前言版权推荐word:三线表的绘制效果简单方法另外的方法 最后 前言 2024-5-7 18:25:08 以下内容源自《【攻略】》 仅供学习交流使用 版权 禁止其他平台发布时删除以下此话 本文首次发布于CSDN平台 作者是CSDN日星月云 博客…

docker jenkins 部署springboot项目

1、创建jenkins容器 1,首先,我们需要创建一个 Jenkins 数据卷,用于存储 Jenkins 的配置信息。可以通过以下命令创建一个数据卷: docker volume create jenkins_data启动 Jenkins 容器并挂载数据卷: docker run -dit…

视频素材库在哪里找免费手机版?8个可以用手机浏览的素材网

在视觉内容占据主导地位的今天,合适的视频素材可以大大提升项目的吸引力和效果。以下列出的视频素材网站为广告制作者、社交媒体策略师及电影制作人提供了从传统到现代风格的各种视频素材选择,满足不同的创作需求。 1. 蛙学府(中国&#xff…

PTQ4SAM、Mamba-Attention、AniTalker、IceFormer、U-DiTs、CogDPM

本文首发于公众号:机器感知 PTQ4SAM、Mamba-Attention、AniTalker、IceFormer、U-DiTs、CogDPM PTQ4SAM: Post-Training Quantization for Segment Anything Segment Anything Model (SAM) has achieved impressive performance in many computer vision tasks. Ho…

【typescript 小秘籍 - 类型自动推导】

今天发现个typescript的小技巧,原来在vscode里面 typescript是可以根据数据,自动推导其类型的,这样就不用自己去手敲定义了。比如 鼠标移动到person上,可以看到 其自动推导了person的类型 然后直接复制下来 直接使用即可。