【问题标题】:shiny: Aligning inputPanel and wellPanel, or using another widget闪亮:对齐 inputPanel 和 wellPanel,或使用其他小部件
【发布时间】:2021-03-16 22:13:41
【问题描述】:

我正在尝试设置一个闪亮的应用程序,其中用户输入一个值,并且有 2 个框在与输入框相同的行中设置了值。这些其他中的设置值2 个框将是数字,但它们只需要显示在这些框中。

我使用wellPanel 来显示包含设定值的 2 个框。

我要解决的问题是让所有 3 个框很好地排列在一起。结果,我想知道除了 wellPanel 是否还有另一个闪亮的小部件可以做我想做的事情,或者是否有办法对齐它们(wellPanel 似乎没有太多的论据,我'不知道如何对齐它们)。在实际应用中,还有一堆其他的输入框很好地排列在前 3 个框的下方。

下面是示例图片,您可以在其中看到 numericInput 框与用于保存范围的 wellPanel 框不对齐。

这是一个简单的可重现示例:

library(shiny)

# Define UI
ui <- fluidPage(headerPanel("Test app"),
                fluidRow(
                  column(
                    width = 3,
                    numericInput(
                      inputId = "x",
                      label = "Input number",
                      value = "",
                      min = 0,
                      max = 500
                    )
                  ),
                  column(width = 3,
                         wellPanel("low range value")),
                  column(width = 3,
                         wellPanel("high range value"))
                ))

# Server
server <- function(input, output) {}

# Run
shinyApp(ui = ui, server = server)

【问题讨论】:

    标签: css r shiny


    【解决方案1】:

    另一种选择是你使用 ShinyDashboard,你有更多的可能性,其中之一是 valueBox 组件。这里的代码示例: valueBox in Shiny dashboard

    library(shiny)
    library(shinydashboard)
    ui <- dashboardPage(dashboardHeader(),
                        dashboardSidebar(),
                        dashboardBody(fluidRow(
                          column(
                            width = 3,
                            numericInput(
                              inputId = "x",
                              label = "Input number",
                              value = "",
                              min = 0,
                              max = 500
                            )
                          ),
                          column(
                            width = 3,
                            valueBox(width = 12, format(54500, big.mark = ","),
                              "low range value", icon = icon("coins"), color = "blue")
                          ),
                          column(
                            width =  3,
                            valueBox(width = 12, format(18754500, big.mark = ","),
                                     "long range value", icon = icon("fire"), color = "orange")
                          )
                        )
                      )
                    )
    
    server <- function(input, output) {}
    
    # Run
    shinyApp(ui = ui, server = server)
    

    【讨论】:

    • 这是我能想到的最接近的工作,所以我会接受,谢谢。
    猜你喜欢
    • 2021-01-09
    • 1970-01-01
    • 2020-07-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-11-23
    • 2015-12-20
    相关资源
    最近更新 更多