Расположение элементов textInput в двух или более столбцах в блестящем приложении - PullRequest
0 голосов
/ 07 октября 2018

Блестящий графический интерфейс прямо сейчас выглядит так, как показано на рисунке.Я хотел бы оптимизировать пространство и расположение элементов (> 30) textInput в двух или более столбцах в sidebarPanel .

Как настроить два столбца с элементами textInput - есть ли тип таблицы, который я могу использовать?

Как изменить высота textInput , Я вижу, что можно редактировать только 'width'?

Как оптимизировать расположение элементов textInput: т.е. расстояние между элементами, размер шрифта и т. Д.

optimisation of textInput elements arrangment

1 Ответ

0 голосов
/ 07 октября 2018

Код показывает дизайн боковой панели с двумя столбцами и 15 строками (30 текстовых входов).По сути, вы пишете функцию для генерации пользовательского интерфейса для одной строки, а затем просто вызываете ее снова и снова, используя lapply для сколь угодно большого количества строк.Вы можете использовать этот подход для любого числа столбцов.

output$test показывает, как можно извлечь значения из всех входных данных.

library(shiny)

textInputFUN <- function(uid) {
  fluidRow(
    column(6,
      textInput(paste0("par_", uid), label = paste0("par_", uid))
    ),
    column(6,
      textInput(paste0("par_", uid+1), label = paste0("par_", uid+1))
    )
  )
}

input_rows <- 15
input_ids <- seq(1, input_rows*2, by = 2)

shinyApp(
  ui = fluidPage(
    sidebarLayout(
      sidebarPanel(
        lapply(seq_len(input_rows), function(x) {
          textInputFUN(uid = input_ids[x])
        })
      ),
      mainPanel(
        verbatimTextOutput("test")
      )
    )
  ),
  server = function(input, output, session) {
    output$test <- renderPrint({
      sapply(paste0("par_", seq_len(input_rows*2)), function(x) input[[x]])
    })
  }
)
...