Скачать Ширина кнопки в R Flexdashboard - PullRequest
1 голос
/ 25 марта 2019

У меня проблемы с изменением ширины моей DownloadButton, поскольку он отличается от actionButton (у которого есть параметр width).

Есть ли простые идеи, чтобы решить эту проблему?Вот мой код (Простая кнопка загрузки):

Normalidade  
=======================================================================
Inputs {.sidebar}
-----------------------------------------------------------------------
<h5>
```{r}
tags$hr()


downloadButton("downloadNormal",label = "Download seu teste", class = "butt1")


downloadHandler(
    filename = "Resultados_Normal.csv",

    content = function(file) {
      write.csv(data, file)
    }

    )

tags$hr()
tags$br()
actionButton("AjudaNormal", label = " Ajuda", icon("question-circle"),
             width = "100%",
             onclick="window.open('http://google.com', '_blank')")


```
</h5>

1 Ответ

1 голос
/ 27 марта 2019

На самом деле, после игры с этим я рекомендую использовать uiOutput с renderUI.

Без использования uiOutput функция downloadButton игнорируется (оценивается только downloadHandler), поэтому параметр width не был установлен, а также вы не можете изменять меткуКнопка.

Все решено с помощью uiOutput.

---
title: "Full width downloadButton"
output: 
  flexdashboard::flex_dashboard:
    css: styles.css
runtime: shiny
---

```{r setup, include=FALSE}
library(flexdashboard)
```

Inputs {.sidebar}
-----------------------------------------------------------------------

```{r}
# Create placeholder for the downloadButton
uiOutput("downloadUI")
```

```{r}
# Create the actual downloadButton
output$downloadUI <- renderUI( {
  downloadButton("downBtn", "Download Iris data", style = "width:100%;")
})

# Add download handling
output$downBtn <- downloadHandler(
  filename = function() {
    "iris.csv"
  },
  content = function(file) {
    write.csv(iris, file, row.names = FALSE)
  }
)
```

Я установил width, используя inlineCSS с аргументом style, но выможет (и должен) использовать внешнюю таблицу стилей, если у вас несколько правил CSS.

Использование внешней таблицы стилей (файл CSS)

Внешний файл CSS можно использовать в Flexdashboard, добавив css: path/filename.css в заголовок YAML.

---
title: "Full width downloadButton"
output: 
  flexdashboard::flex_dashboard:
    css: styles.css
runtime: shiny
---

В этом случае приложение пытается прочитать файл с именем styles.css в той же папке, что и Rmd.

Создать файл CSS вту же папку и добавьте правило:

#downBtn {
  width: 100%;
}

Теперь вы можете удалить style = "width:100%;" из downloadButton и по-прежнему получать кнопку полной ширины.

Вывод:

output

...