File size: 1,174 Bytes
97b4d0f
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
import streamlit as st


def grid(col=3, row=4, name='grid1'):
    cols = st.columns(col)
    for i in range(row):
        for j in range(col):
            with cols[j]:
                value = st.session_state.checked_dic[name].get(f"{name}_{i*col+j}", False)

                check = st.checkbox(f"{i*col+j}", key=f"{name}_{i*col+j}", value=value)
                if check:
                    st.session_state.checked_dic[name][f"{name}_{i*col+j}"] = True
                else:
                    st.session_state.checked_dic[name][f"{name}_{i*col+j}"] = False


def on_click():
    for key in st.session_state:
        if st.session_state[key] and key[-1].isdigit():
            st.write(key)
    # for key in st.session_state.checked_dic[name]:
    #     if st.session_state.checked_dic[name][key]:
    #         st.write(key)



if __name__ == "__main__":
    if 'checked_dic' not in st.session_state:
        st.session_state.checked_dic = {'grid1': {}, 'grid2': {}}

    name = st.selectbox('Select a grid', ['grid1', 'grid2'])

    with st.form(f"{name}_form"):
        grid(name=name)
        submit_button = st.form_submit_button("Submit", on_click=on_click)