Hi, I am new to streamit. A small question is I need to display a value that changes when a button is clicked. Lets say I have a caption/header etc that needs to be changed when I click a button. is this possible?
Steps to reproduce
import streamlit as st
import pandas as pd
import numpy as np
st.title(“Sample Tutorial for adding numbers”)
col1, col2 = st.columns(2)
with col1:
a = st.text_input("Please enter number 1",key = "number 1" , help = "Enter the first number")
b = st.text_input("Please enter number 2",key = "number 2" , help = "Enter the second number")
# sum_value = st.metric(value = 1, label = "sum")
#
sum = st.button("Calculate Sum", key = "calculate")
sum_caption = st.caption("The sum is:")
if sum:
try:
a = float(a)
b = float(b)
c = a + b
st.write(c)
except:
st.exception("One of the numbers entered is not float")
I’m not 100% sure how you want to modify your code as it seems to work when I use it, but you can create st.empty() containers and then update these such as in the code below
import streamlit as st
import pandas as pd
import numpy as np
st.title("Sample Tutorial for adding numbers")
col1, col2 = st.columns(2)
sum_caption = st.empty()
sum_caption.caption("The sum is:")
mycaption = st.empty()
with col1:
a = st.text_input("Please enter number 1",key = "number 1" , help = "Enter the first number")
b = st.text_input("Please enter number 2",key = "number 2" , help = "Enter the second number")
# sum_value = st.metric(value = 1, label = "sum")
#
mysum = st.button("Calculate Sum", key = "calculate")
if mysum:
try:
a = float(a)
b = float(b)
c = a + b
mycaption.caption(c)
except:
st.exception("One of the numbers entered is not float")
Hi Luke. Thanks a lot for the answer. I was able to find it online the same answer and it worked. Nonetheless I think that it would be much easier if we are able to access the value of widget later and change it if possible. What do you think?