You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何基于另一个输入更改Py-Shiny中ui.input元素的值?

如何在Py-Shiny中根据其他输入修改UI输入元素的值?

完全可以实现。你可以利用Py-Shiny的update_*系列函数,配合观察者监听目标输入的变化,动态更新另一个输入元素的值。针对你的需求,具体实现如下:

修改后的完整代码

from shiny import App, Inputs, Outputs, Session, render, ui

app_ui = ui.page_fluid(
    ui.input_checkbox("Uppercase", "使用大写字母", False),
    ui.input_text("caption", "标题:", value="example text"),
    ui.output_text_verbatim("value"),
)


def server(input: Inputs, output: Outputs, session: Session):
    # 监听复选框状态变化,动态更新输入框的值
    @ui.observe(input.Uppercase)
    def _update_caption():
        if input.Uppercase():
            # 勾选时设置为大写文本
            session.update_text_input("caption", value="EXAMPLE TEXT")
        else:
            # 取消勾选时恢复小写文本
            session.update_text_input("caption", value="example text")

    @render.text
    def value():
        return input.caption()


app = App(app_ui, server)

关键说明

  • ui.observe(input.Uppercase):创建观察者,当复选框状态变化时自动执行内部逻辑
  • session.update_text_input():Py-Shiny提供的文本输入框更新函数,通过指定输入ID和新值,实现内容动态切换
  • 逻辑判断:根据复选框返回的布尔值,切换输入框显示的大小写文本

内容的提问来源于stack exchange,提问作者gernophil

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.18 16:12:04