Add widgets to sidebar
Not only can you add interactivity to your app with widgets, you can organize them into a sidebar. Elements can be passed to
st.sidebar using object notation and
The following two snippets are equivalent:
# Object notation st.sidebar.[element_name]
# "with" notation with st.sidebar: st.[element_name]
Each element that's passed to
st.sidebar is pinned to the left, allowing users to focus on the content in your app.
The sidebar is resizable! Drag and drop the right border of the sidebar to resize it! ↔️
Here's an example of how you'd add a selectbox and a radio button to your sidebar:
import streamlit as st # Using object notation add_selectbox = st.sidebar.selectbox( "How would you like to be contacted?", ("Email", "Home phone", "Mobile phone") ) # Using "with" notation with st.sidebar: add_radio = st.radio( "Choose a shipping method", ("Standard (5-15 days)", "Express (2-5 days)") )
The only elements that aren't supported using object notation are
st.toast. To use these elements, you must use
import streamlit as st with st.sidebar: with st.echo(): st.write("This code will be printed to the sidebar.") with st.spinner("Loading..."): time.sleep(5) st.success("Done!")
Still have questions?
Our forums are full of helpful information and Streamlit experts.