如何基于另一个输入更改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
相关产品推荐
相关产品推荐

