首页 > 其他分享 >streamlit容器布局

streamlit容器布局

时间:2023-11-01 11:47:20浏览次数:27  
标签:容器 元素 布局 st https import streamlit

streamlit容器布局

目录

侧边栏交互sidebar

st.sidebar
将交互元素添加至侧边栏


# 方法1. 使用对象表示法
st.sidebar.[element_name]

# 方法2. 使用 "with" 语法
with st.sidebar:
    st.[element_name]

在侧边栏新增元素,如单选框,滑动框

import streamlit as st

# 使用对象表示法添加选择框
add_selectbox = st.sidebar.selectbox(
    "选择连接方式",
    ("电子邮件", "家庭电话", "移动电话")
)
# 使用“with”语法添加单选按钮
with st.sidebar:
    add_radio = st.radio(
        "选择一种运输方式",
        ("标准(5-15天)", "快递(2-5天)")
    )

并排布局columns

st.columns(spec, *, gap="small")
# spec (int or iterable of numbers)

嵌套多元素容器只支持一层
import streamlit as st

# "with" 方法 编写
col1, col2, col3 = st.columns(3)
with col1:
   st.header("一只猫")
   st.image("https://static.streamlit.io/examples/cat.jpg")

with col2:
   st.header("一只狗")
   st.image("https://static.streamlit.io/examples/dog.jpg")

with col3:
   st.header("一只猫头鹰")
   st.image("https://static.streamlit.io/examples/owl.jpg")

    
# "对象" 方法 编写
col1, col2 = st.columns([3, 1])    # 设置左右布局大小为3:1
data = np.random.randn(10, 1)

col1.subheader("一个宽容器,含有图表")
col1.line_chart(data)

col2.subheader("一个窄容器,含有数据")
col2.write(data)

img

选项卡tabs

import streamlit as st

tab1, tab2, tab3 = st.tabs(["猫", "狗", "猫头鹰"])

# "with" 方法 编写
with tab1:
   st.header("一只猫")
   st.image("https://static.streamlit.io/examples/cat.jpg", width=200)

with tab2:
   st.header("一只狗")
   st.image("https://static.streamlit.io/examples/dog.jpg", width=200)

with tab3:
   st.header("一只猫头鹰")
   st.image("https://static.streamlit.io/examples/owl.jpg", width=200)
    
# 对象 方法 编写   
tab1, tab2 = st.tabs(["图表", "数据"])
data = np.random.randn(10, 1)

tab1.subheader("一个带有图表的选项卡")
tab1.line_chart(data)

tab2.subheader("一个带有数据的选项卡")
tab2.write(data)

需要注意的是,每个选项卡的所有内容都会被一次性发送并渲染在前端

展开式容器expander

不支持将 st.expander 嵌套在另一个 st.expander 
import streamlit as st



expander = st.expander("查看说明")

expander.header("一只猫")
expander.image("https://static.streamlit.io/examples/cat.jpg", width=200)

透明多元素container

可以插入一个不可见的容器,用于承载多个元素,对用户来说是不可见的,便于进行布局管理

import streamlit as st
import numpy as np

with st.container():
   st.write("这是容器内的内容")

   # 您可以调用任何 Streamlit 命令,包括自定义组件:
   st.bar_chart(np.random.randn(50, 3))

st.write("这是容器外的内容")

单元素empty

empty 可以插入一个单元素容器,用于承载一个元素

可以通过 st.empty 插入的元素可以在任何时候进行替换或清除操作
import streamlit as st
import time

with st.empty():
    for seconds in range(60):
        st.write(f"⏳ 已过去 {seconds} 秒")
        time.sleep(1)
    st.write("✔️ 1 分钟结束!")
import streamlit as st
import time
placeholder = st.empty()

# 用一些文本替换占位符:
placeholder.text("你好")

time.sleep(2)
# 用一个图表替换文本:
placeholder.line_chart({"data": [1, 5, 2, 6]})
time.sleep(2)
# 用多个元素替换图表:
with placeholder.container():
    st.write("这是一个元素")
    st.write("这是另一个元素")
time.sleep(2)
# 清除所有这些元素:
placeholder.empty()

参考资料

https://blog.csdn.net/weixin_46043195/article/details/132201562

标签:容器,元素,布局,st,https,import,streamlit
From: https://www.cnblogs.com/tian777/p/17802694.html

相关文章

  • streamlit控件和控制2
    streamlit控件和控制2目录streamlit控件和控制2st.radiost.selectboxst.multiselectst.select_sliderst.sliderst.progress参考资料button: #按钮download_button:#文件下载file_uploader: #文件上传checkbox: #复选框toggle:#切换框radio: #......
  • streamlit数据和绘图
    streamlit数据和绘图目录streamlit数据和绘图st.dataframest.data_editorst.column_configst.metricst.line_chartst.bar_chartst.area_chartst.scatter_chartst.pyplotst.plotly_chartstreamlit_echarts插件参考资料st.dataframe数据展示支持(pandas.DataFrame,pandas.Seri......
  • armsom: AIM5已经设计完了原理图,正在进行电路布局
    在现代电子工程领域,原理图设计和电路布局是新产品开发的关键步骤之一。它们为电子设备的功能和性能奠定了基础,决定了产品的最终质量和可靠性。ArmSoM已经成功完成了AIM5的原理图设计,目前正在积极进行电路布局的工作,如下为AIM5初步布局示意图,预计11月二十号完成电路布局。armsom-ai......
  • 华为云中虚拟机及容器的架构
    虚拟机现实中我们用的计算机看到的都是物理机,而虚拟机,顾名思义就是虚拟的机子,它把磁盘文件和描述文件封装在同一文件夹然后存放在底层存储提供的文件系统中,相较于物理机他的特点有:资源分区封装(操作系统与应用)独立(不同服务器之间的传递)隔离(每台虚拟机拥有一个独立的OS)容器......
  • C#设置DockPanelSuit布局
    1、下载Nuget包,并安装 2、工具箱中拖入如下两个工具到界面 3、设置DockPanelSuite属性 4、更改子窗体代码,若Form2为子窗体,则将其继承Form改为DockContent 5、实现Form2每次显示在Form1内,可以更改DockState实现设置停靠位置  6、同Form2一样,再设置Form3 7、......
  • 一个类似于Gridster的栅格布局系统Vue组件
    哈喽,我是老鱼,一名致力于在技术道路上的终身学习者、实践者、分享者!VueGridLayout是一个类似于Gridster的栅格布局系统,适用于Vue.js,灵感来源于ReactGridLayout。特性可拖拽可调整大小静态部件(不可拖拽、调整大小)拖拽和调整大小时进行边界检查增减部件时避......
  • JUC高并发容器-CopyOnWriteArrayList
    CopyOnWriteArrayListJUC高并发容器线程安全的同步容器类什么是高并发容器?CopyOnWriteArrayListJUC高并发容器线程安全的同步容器类  Java同步容器类通过Synchronized(内置锁)来实现同步的容器,比如Vector、HashTable以及SynchronizedList等容器。线程安全的同步容器类主要有Vec......
  • Qt之容器类
    一、容器类的概述Qt提供了多个基于模板的容器类,这些容器类可以用于存储指定类型的数据项,Qt的容器类比标准模板库(STL)中的容器类更轻巧、安全和易于使用。这些容器类是隐式共享和可重入的,而且它们进行了速度和存储优化,因此可以减少可执行文件的大小,此外,它们还是现场安全的,也......
  • 短视频app源码,Flutter组件--搜索页面布局
    短视频app源码,Flutter组件--搜索页面布局 classLayoutDemoextendsStatelessWidget{ constLayoutDemo({Key?key}):super(key:key); @override Widgetbuild(BuildContextcontext){  returnPadding(   padding:constEdgeInsets.all(10),   c......
  • .NET中的数组在内存中如何布局?
    总的来说,.NET的值类型和引用类型都映射一段连续的内存片段。不过对于值类型对象来说,这段内存只需要存储其字段成员,而对应引用类型对象,还需要存储额外的内容。就内存布局来说,引用类型有两个独特的存在,一个是字符串,另一个就是数组。我在《你知道.NET的字符串在内存中是如何存储的吗?......