Hi Peeps,
kinda created a super smooth generic layout for putting buttons and functions into a widget.
Maybe some of you can use it.
import time
def app():
st.title("Generic Expander Widget")
def get_hungry():
### do sports
with st.spinner('Keep Running'):
while time.time() < (time.time() + 60 * 1800):
running()
st.success("Got Hungry")
def order_pizza():
### call pizza service
with st.spinner('While on Phone'):
calling()
st.success("Pizza ordered")
def wait():
with st.spinner('While wating'):
time.sleep(1.200)
st.success("Pizza arrived")
def enjoy_meal():
### enjoy your meal
with st.spinner('While eating'):
eat()
st.success("Be satisfied")
Implementing the widget:
def multi_expander(cols, btn_names, funcs, key):
my_expander = st.beta_expander(btn_names[key], expanded=True)
with my_expander:
if cols[key].button(btn_names[key], i):
func_to_call = funcs[key]
func_to_call()
### Setup ###
cols = st.beta_columns(4)
btn_names = ["Get Hungrey", "Order pizza", "Wait", "Enjoy meal"]
fDict = {0: get_hungry, 1: order_pizza, 2: wait, 3: enjoy_meal}
for i in range(0,4):
multi_expander(cols, btn_names, fDict, i)