import streamlit as st import uuid # クリックするたび数字が増える st.subheader("1.クリックするたび数字が増える") if 'count' not in st.session_state: st.session_state["count"] = 0 if st.button("カウント", key=0): st.session_state["count"] += 1 st.write("カウント", st.session_state["count"]) # ボタンを押した数だけテキストが増える st.subheader("2.ボタンを押した数だけテキストが増える") if 'increasement' not in st.session_state: st.session_state["increasement"] = 0 if st.button("カウント", key=1): st.session_state["increasement"] += 1 for i in range(st.session_state["increasement"]): st.write(f"ボタンを押した回数 {i+1} 回目分") # テキストフィールドに入力したテキストの追加ボタン、削除ボタンを設置。 st.subheader("3.テキストフィールドの文字が、追加ボタンを押すと増え、削除ボタンを押すと消える") text = st.text_input("表示したい単語を入力してください") if 'text_list' not in st.session_state: st.session_state["text_list"] = [] col1, col2 = st.columns(2) with col1: if st.button("追加", key=2): st.session_state["text_list"].append(text) with col2: if st.button("削除", key=3): st.session_state["text_list"].remove(text) for output_text in st.session_state["text_list"]: st.write("", output_text) # 綺麗に並んだテキスト(行数の表示あり)3つが、追加ボタンを押すと増え、削除ボタンを押すと消える st.subheader("4.綺麗に並んだテキスト(行数の表示あり)3つが、追加ボタンを押すと増え、削除ボタンを押すと消える") if 'add_container' not in st.session_state: st.session_state["add_container"] = 0 col3, col4 = st.columns(2) with col3: if st.button("追加", key=4): st.session_state["add_container"] += 1 with col4: if st.button("削除", key=5): if st.session_state["add_container"] >= 1: st.session_state["add_container"] -= 1 def add_container(row_num): with st.container(): col1, col2, col3 = st.columns(3) with col1: st.write(f"This is left side in {row_num+1} row.") with col2: st.write(f"This is middle side in {row_num+1} row.") with col3: st.write(f"This is right side in {row_num+1} row.") for i in range(st.session_state["add_container"]): add_container(i) # ボタンを押すとヴィジェットを追加する import uuid st.subheader("5.ボタンを押すとヴィジェットを追加する") if 'unique_id' not in st.session_state: st.session_state["unique_id"] = [] col5, col6 = st.columns(2) with col5: if st.button("追加", key=6): st.session_state["unique_id"].append(uuid.uuid1()) with col6: if st.button("削除", key=7): st.session_state["unique_id"].pop(-1) for unique_id in st.session_state["unique_id"]: with st.container(): col7, col8 = st.columns(2) with col7: slider_value = st.slider( "数値", min_value=0, max_value=14, value=0, key=unique_id ) with col8: st.write("") st.write("") st.write(slider_value)