Hello. I have two selectboxes and i want to reset the value of one of them when the user selects from the other one. Is there any way to do this? Thamks
Hi @elwyn, welcome to the community!
reset the value of one of them when the user selects from the other one
Could you elaborate on what you mean by that, perhaps with an example?
Happy Streamlit-ing!
Snehan
Hello and thamks for the welcome
In short, how can I set the value of a ‘text-input’ from code?
Say, when the user presses a button, the value of ‘transport’ text_input should be set to ‘10’
transport = st.text_input('Transport', 0)
if st.button('Set transport to 10'):
transport = 10
^I tried something like this but it doesn’t change the ‘text_input’ value, only the variable
You could set the value of your transport text_input box to be a variable (you’ll need to assign that variable a value first), and then have the button change the value of that variable?
Hi @elwyn ,
Will this work for you ?
import streamlit as st
emp = st.empty()
transport = emp.text_input('Transport', 0)
# Probably you don't need slider, just to show that the value can be variable user Input
val = st.slider(label = 'Transport value',min_value= 1,max_value = 20 )
if st.button('Set transport to 10'):
# Insted of val, just plug in 10, if exactly that's what you need
transport = emp.text_input('Transport', val)
Best,
Avra
Hello ac3, thamks for the reply.
You mean something like this? Tried it, doesn’t seem to work.
val = 0
transport = st.text_input('Transport', val)
if st.button('Set transport to 10'):
val = 10
@AvratanuBiswas 's solution works fine though
Yes! Thank you so much. It works perfectly like this
What if i also want the text_input to have a certain width?
Normally it goes smth like
col1, col2 = st.beta_columns([2, 1])
transport = col1.text_input('Transport', 0)
stock = col2.text_input('Stock', 0)
But if i replace ‘col1’ with ‘emp’, it will have full-width…
This topic was automatically closed 365 days after the last reply. New replies are no longer allowed.