import streamlit as st # 사이드바 타이틀 st.sidebar.title("접이식 메뉴") # 메뉴 항목과 하위 항목 정의 menus = { "Display": ["Display text", "Display interactive widgets", "Display data", "Display media", "Display code", "Display progress and status"], "Data": ["Connect to data sources", "Mutate data", "Placeholders, help, and options"], "Control": ["Optimize performance", "Cache global resources", "Deprecated caching"], "Layout": ["Columns", "Tabs", "Control flow"], "Interactivity": ["Build chat-based apps", "Personalize apps for users"], } selected_menu = None # 각 메뉴에 대해 사이드바에 접이식 메뉴 생성 for menu in menus: with st.sidebar.expander(menu): for sub_menu in menus[menu]: if st.button(sub_menu, key=sub_menu): # 고유한 key를 제공하여 각 버튼을 구별 selected_menu = sub_menu break # 선택된 메뉴에 따른 동작 구현 if 'selected_menu' in locals(): if selected_menu == "Display interactive widgets": # 슬라이더 위젯을 사용하고 반환 값을 slider_val 변수에 저장 slider_val = st.slider('Slide me', min_value=0, max_value=10) # 저장된 slider_val 변수 값을 사용하여 출력 st.write(f"슬라이더의 값: {slider_val}") st.text('Fixed width text') st.markdown('_Markdown_') # see #* st.caption('Balloons. Hundreds of them...') st.latex(r''' e^{i\pi} + 1 = 0 ''') st.write('Most objects') # df, err, func, keras! st.write(['st', 'is <', 3]) # see * st.title('My title') st.header('My header') st.subheader('My sub') st.code('for i in range(8): foo()') elif selected_menu == "Display interactive widgets": # Interactive widgets button_clicked = st.button('Hit me') checkbox_checked = st.checkbox('Check me out') radio_option = st.radio('Pick one:', ['nose', 'ear']) selectbox_option = st.selectbox('Select', [1, 2, 3]) multiselect_options = st.multiselect('Multiselect', [1, 2, 3]) slider_value = st.slider('Slide me', min_value=0, max_value=10) select_slider_option = st.select_slider('Slide to select', options=[1, '2']) text_input = st.text_input('Enter some text') number_input = st.number_input('Enter a number') text_area = st.text_area('Area for textual entry') date_input = st.date_input('Date input') time_input = st.time_input('Time entry') file_uploader = st.file_uploader('File uploader') color_picker = st.color_picker('Pick a color')