使用R在radioButtons旁边添加帮助图标

qyzbxkaa  于 2023-05-26  发布在  其他
关注(0)|答案(1)|浏览(143)

我想在每个单选按钮的右侧放置一个有用的图标。当用户悬停或单击帮助图标时,我希望显示文本。
下图是一个下拉菜单,但我使用单选按钮。

**注意:**单选按钮选项来自csv文件。

example of what I would like
下面是我的代码:

ui <- fluidPage(
  fluidRow(
    column(5, 
           wellPanel(
             radioButtons('var',
                          h4('Select a Model Object'), 
                          choices = c(""), 
                          width = '37%'
             ),
             shinyDirButton('directory', 'Select Directory', 'Please Select a Directory') 
           )
    )
  )
)

server <- function(input, output, session) {
  # Get folder names within the system_models directory
  model_names <- read.csv("/Users/fs8/Desktop/Project/MAAT/src/system_models/model_names.csv")
  
  # Update choices for selectInput0
  updateRadioButtons(session, "var", choices = setNames(model_names$original_name, model_names$display_name))
}
brqmpdu1

brqmpdu11#

我还没有找到一种将帮助图标放在一组单选按钮中每个按钮旁边的方法,因为radioButtons不能直接访问每个单独的按钮。会有办法的,但可能很复杂。我在想是否值得你这么努力...
不过,在复选框列表中的每个条目旁边放一个帮助图标很容易。您可以轻松地监视复选框,以确保在给定时间只选中一个复选框。
我只为其中一个小部件提供了帮助内容,但是您应该能够确定需要为其余部件做些什么。
顺便说一下,你的示例代码是不可复制的。您忘记包含您的library调用,更严重的是,我们无法访问您的桌面,因此无法填充单选按钮列表。所以我做了一些通用的东西。

library(shiny)
library(shinyhelper)
library(magrittr)

ui <- fluidPage(
  fluidRow(
    column(
      5, 
      wellPanel(
        radioButtons(
          'var',
          h4('Make a choice'), 
          choices = LETTERS[1:4]
        ) %>% 
        helper()
      )
    ),
    column(
      5, 
      wellPanel(
          h4('Make another choice'), 
          checkboxInput("checkboxA", "A") %>% 
            helper(
              type = "inline", 
              title="Help for item A", 
              content = "Blah, blah, blah!"
            ),
          checkboxInput("checkboxB", "B") %>% helper(),
          checkboxInput("checkboxC", "C") %>% helper(),
          checkboxInput("checkboxD", "D") %>% helper()
      )
    )
    
  )
)

server <- function(input, output, session) {
  observe_helpers()
}

shinyApp(ui, server)

我已经包含了magrittr包,因为我认为管道使代码更具可读性。如果你不想使用它,那么一个等价的示例是

helper(checkboxInput("checkboxB", "B"))

相关问题