gpt4 book ai didi

python-3.x - Streamlit:将小部件输入传递给它自己的回调

转载 作者:行者123 更新时间:2023-12-05 02:29:26 26 4
gpt4 key购买 nike

我想在 streamlit 中捕获文本text_area 小部件(例如,但任何产生输入的小部件都应该工作相同),并将捕获的文本传递给回调。我怎么能那样做? (如果可能的话)。

到目前为止我已经尝试过:

import streamlit as st

def callback(string):
print(string) # do something using a string here

然后要么

text_input = st.text_area("Enter a text", key="input_text", 
on_change=callback,
args=(text_input,))

# text_input does not exist

text_input = st.text_area("Enter a text", key="input_text", 
on_change=callback,
args=(st.session_state.input_text,))

# session_state.input_text is not initialized

两者都会导致错误。

我的基本用法是例如:

  • 在后面的日志类文件中添加用户评论
  • 在后面追加一个字符串到列表

我找到了解决方法

input_text= st.text_area("Enter a text", key="input_text")

if input_text!= st.session_state.input_text:
callback(input_text)
st.session_state.input_text = input_text
st.button("Callback", on_click=callback(input_text))

跟随 tutorial on towardsdatascience但我对它并不完全满意,因为它有两个可能相互竞争的小部件,而我只需要一个。

最佳答案

这样做。请注意按 cntrl+enter 进行申请。

代码
def proc():
st.write(st.session_state.text_key)

st.text_area('enter text', on_change=proc, key='text_key')
输出

enter image description here

关于python-3.x - Streamlit:将小部件输入传递给它自己的回调,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/72182849/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com