首页 > 解决方案 > 是否可以通过将文本编辑器光标放在 numericInput 控件中来在 Shiny 中呈现输出图像?

问题描述

我正在构建一个闪亮的应用程序,我必须在其中输入加工零件的不同尺寸(如长度和高度)。我有一个部件的图像,显​​示应用程序上的哪个 numericInput 框与部件的哪个维度相关,但是如果不是有一个包含所有维度描述的单个图像,而是为每个特定的 numericInput 有一个图像,那就更好了. 这样当用户将文本编辑器光标放在 numericInput 框内时,图片上只会显示相关的尺寸。有任何想法吗?

tks

标签: rshiny

解决方案


可能有更好的方法来做到这一点,但这有效。我们使用onclick()withshow()hide()来控制一些hidden()元素。所有这些功能都来自shinyjs包。请注意,这是存储在应用程序/www目录中的两个不同图像文件。

library(shiny)
library(shinyjs)

ui <- fluidPage(
  useShinyjs(),
  textInput("one","First input"),
  textInput("two","Second input"),
  hidden(img(src = "one.png", id = "image1")),
  hidden(img(src = "two.png", id = "image2"))
)

server <- function(input, output, session) {
  
  onclick("one", {
    show("image1")
    hide("image2")
  })

  onclick("two", {
    show("image2")
    hide("image1")
  })
  
}

shinyApp(ui, server)

当分别点击“第一次输入”和“第二次输入”时,此应用程序会给出以下内容。

选择的第一个输入显示黑框,宽度为红线 选择的第二个输入显示带有红线高度的黑框


推荐阅读