Допустим, у меня есть это небольшое приложение для стрижки с боковой панелью, которая содержит, например, 4 кнопки (кнопка 1, ..., кнопка 4). И на главной панели у меня есть две вкладки (вкладка 1 и вкладка 2). < /P>
Теперь я хочу это: < /p>
< li> Когда я выбираю вкладку 1, только кнопка отображения 1 и кнопка 2 и кнопка укрытия 3 и кнопка 4.
< li> Когда я выбираю вкладку 2, только кнопка отображения 3 и кнопка 4 и кнопка укрытия 1 и кнопка 2.
< /ul>
Я попробовал это с session_state < /strong>, чтобы сохранить текущую вкладку, но она не работает. Есть идеи? < /P>
import streamlit as st
def display_buttons(tab):
if tab == "Tab 1":
st.sidebar.button("Button 1")
st.sidebar.button("Button 2")
elif tab == "Tab 2":
st.sidebar.button("Button 3")
st.sidebar.button("Button 4")
if 'active_tab' not in st.session_state:
st.session_state['active_tab'] = 'Tab 1'
tab1, tab2 = st.tabs(["Tab 1", "Tab 2"])
if tab1:
st.session_state['active_tab'] = 'Tab 1'
if tab2:
st.session_state['active_tab'] = 'Tab 2'
with tab1:
st.write("This is Tab 1")
if st.session_state['active_tab'] == 'Tab 1':
display_buttons("Tab 1")
with tab2:
st.write("This is Tab 2")
if st.session_state['active_tab'] == 'Tab 2':
display_buttons("Tab 2")
Подробнее здесь: https://stackoverflow.com/questions/793 ... ching-tabs