Mis*_*caE 2 layout user-interface r shiny
我正在构建一个闪亮的应用程序,我希望能够对输入小部件进行分组,最好为每个组都有一个标题。例如,我想要一个用于“裤子尺码”的框,其中包含腰部下拉菜单和内缝下拉菜单,然后是另一个用于“T 恤尺码”的框,其中包含 XS/S/ 下拉菜单M/L/XL 和男女通用/女式单选按钮。
有没有办法将小部件集放入自己的盒子中,或者打破它们全部放入的标准灰盒子?
谢谢!
如果您想使用布局fluidPage
并且您的问题仅与布局相关:我的想法是将这些小部件“分组”在面板中,然后自定义这些面板的样式(CSS)。例如,您可以使用网格布局或侧边栏布局。
示例取自这篇文章。
library(shiny)
ui <- shinyUI(fluidPage(
tags$head(tags$style(
HTML('
#sidebar, #sidebar2 {
border: 1px solid black;
}
body, label, input, button, select {
font-family: "Arial";
}')
)),
titlePanel("Hello Shiny!"),
fluidRow(
column(4,
sidebarLayout(
sidebarPanel(width = 12, id="sidebar",
h5("Pants size"),
sliderInput("waist",
"waist:",
min = 1,
max = 50,
value = 30),
sliderInput("inseam",
"inseam:",
min = 1,
max = 50,
value = 30)
),
mainPanel( width = 0)
)
),
column(8,sidebarLayout(
sidebarPanel(width = 12, id="sidebar2",
h5("T-shirt size"),
selectInput("waist",
"Choose your size:",
choices = c("XS","S","M","L","XL")),
radioButtons("sex",
"sex:",
choices = c("unisex","women's"))
),
mainPanel( width = 0)
) )
)
)
)
server <- shinyServer(function(input, output) {
})
shinyApp(ui=ui,server=server)
Run Code Online (Sandbox Code Playgroud)
在此示例中,关键面板有两个 ID,分别称为sidebar
和sidebar2
。此 ID 用于上面的 CSS 部分。在这里阅读有关面板的更多信息:
使用盒子的另一种方法是shinydashboards,在这里阅读更多信息: https: //rstudio.github.io/shinydashboard/struction.html#boxes