Покажите всплывающее окно пользователя, которое ожидает ввода пользователя без повторного повторного приложенияPython

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Покажите всплывающее окно пользователя, которое ожидает ввода пользователя без повторного повторного приложения

Сообщение Anonymous »

Я делаю приложение Streamlit, в котором я хочу показать пользователю всплывающее окно, чтобы получить от них промежуточный ввод. Проблема в том, что я не могу заставить его повторно запустить в изоляции. Вот мой всплывающий код для справки. Это находится в utils.py , который я импортировал в сценарий основной страницы page.py :

Код: Выделить всё

@st.fragment
@st.dialog("Enter Your Input")
def get_user_input_popup(prompt_text):

if 'dialog_waiting' not in st.session_state:
st.session_state.dialog_waiting = True

if st.session_state.dialog_waiting:
with st.form("popup_form"):
user_input = st.text_input("Your response:", placeholder="Type here...")

col1, col2 = st.columns(2)
with col1:
submit = st.form_submit_button("Submit", type="primary")
with col2:
cancel = st.form_submit_button("Cancel")

if submit and user_input.strip():
st.session_state.dialog_result = user_input.strip()
st.session_state.dialog_waiting = False
st.rerun(scope="fragment")

elif cancel:
st.session_state.dialog_result = "CANCELLED"
st.session_state.dialog_waiting = False
st.rerun(scope="fragment")

elif submit:
st.error("Please enter some text!")

return None

else:
return st.session_state.dialog_result
А вот часть в page.py , которая вызывает приведенную выше всплывающую утилиту:

Код: Выделить всё

with st.spinner("Waiting for input..."):
response = get_user_input_popup("Need more info:")

print("\n\n", response, "\n\n", type(response))
Я подумал, что если я использую St.Fragment , повторные заезды запускают только всплывающее повторное выполнение. Но на самом деле происходит то, что вся страница (т.е. page.py ) получает повторную работу.
и если я не использую строки St.Rerun в функции, то выполнение увеличивает все в функции всплывающего окна и просто не возвращает ни одного.>

Подробнее здесь: https://stackoverflow.com/questions/797 ... entire-app
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»