Форматирование RHandsontable с ShinyThemes - PullRequest
0 голосов
/ 21 февраля 2019

Я пытаюсь отформатировать выпадающий список в RHandsontable, но безрезультатно.

Вот некоторый воспроизводимый код:

library(shiny)
library(dplyr)

DF <- data.frame(Value = 1:10)
choices <- 1:20


ui <- shinyUI(fluidPage(theme = shinytheme("darkly"),

        rHandsontableOutput("hot")
        ,h4("This is example text from the theme.")


  ))

server = (function(input, output) {

    values <- reactiveValues()

    ## Handsontable
    observe({
      if (!is.null(input$hot)) {
        values[["previous"]] <- isolate(values[["DF"]])
        DF = hot_to_r(input$hot)
      } else {
        if (is.null(values[["DF"]]))
          DF <- DF
        else
          DF <- values[["DF"]]
      }
      values[["DF"]] <- DF
    })

    output$hot <- renderRHandsontable({
      DF <- values[["DF"]]
      if (!is.null(DF)) {
        rhandsontable(DF) %>%
          hot_col(col = c("Value"), type = "dropdown", source = choices, strict = TRUE, allowInvalid = FALSE) %>%
          hot_cols(renderer = "
                   function(instance, td, row, col, prop, value, cellProperties) {
                   Handsontable.renderers.DropdownRenderer.apply(this, arguments);
                   td.style.color = 'gray';
                   }
                   ")
      }
    })


    })


shinyApp(ui = ui, server = server)

У меня проблема в том, что пакет ShinyThemes перезаписываетцвет шрифта по умолчанию, делая цвет шрифта белым поверх белого фона для выпадающего меню.Я нашел код, который меняет цвет шрифта значений в таблицы на серый (см. Код).Однако этот цвет шрифта не применяется к раскрывающемуся меню.

Как изменить цвет шрифта и / или фон раскрывающегося меню?

1 Ответ

0 голосов
/ 21 февраля 2019

Используйте этот CSS:

css <- "
.handsontable.listbox td {
  background: black;
}
.handsontable.listbox td.htDimmed {
  color: red;
}
.handsontable.listbox tr:hover td {
  background: yellow; 
}
.handsontable.listbox tr td.current {
  background: green; 
}"
ui <- shinyUI(fluidPage(theme = shinytheme("darkly"),
                        tags$head(tags$style(HTML(css))),
                        ......

enter image description here

...