gr.State是一个不可见的控件,目的是在后台存储一些变量方便访问和交互。
官方说明:
特殊的隐藏组件,用于存储同一用户运行演示时的会话状态。当用户刷新页面时,State 变量的值被清除。
实例:
import gradio as gr
demo = gr.Blocks(css="""#btn {color: red} .abc {font-family: "Comic Sans MS", "Comic Sans", cursive !important}""")
with demo:
default_json = {"a": "a"}
num = gr.State(value=0)
squared = gr.Number(value=0)
btn = gr.Button("Next Square", elem_id="btn", elem_classes=["abc", "def"])
stats = gr.State(value=default_json)
table = gr.JSON()
def increase(var, stats_history):
var += 1
stats_history[str(var)] = var**2
return var, var**2, stats_history, stats_history
btn.click(increase, [num, stats], [num, squared, stats, table])
if __name__ == "__main__":
demo.launch()
界面连续点击三次:
官方详细教程:
Gradio DocsBrowse Gradio Documentation and Exampleshttps://gradio.app/docs/#state