gpt4 book ai didi

r - 改变颜色actionButton Shiny R

转载 作者:行者123 更新时间:2023-12-03 03:14:55 25 4
gpt4 key购买 nike

我正在尝试找出一种方法来让actionButton改变颜色(也可能改变其他样式元素。)目标非常笼统,我将在我复杂的 Shiny 仪表板应用程序中使用它来响应许多按钮。简单地说:如果单击按钮,或者链接到按钮的特定元素(即输入 slider )发生变化,则按钮应该改变颜色。

我通常用 Shiny 编写按钮,如下所示:

  actionButton(inputId= "RunFullModel", label =icon("tree-deciduous", lib = "glyphicon"), 
style = "color: white;
background-color: #35e51d;
position: relative;
left: 3%;
height: 35px;
width: 35px;
text-align:center;
text-indent: -2px;
border-radius: 6px;
border-width: 2px")),

我一直在浏览我的屁股,但没有找到有用的东西。我一直在看@Dean Attali 的shinyjs 来做到这一点,但我只能让它工作来改变打印文本的背景,如下例所示。使用 ToggleClass 或 AddClass 的部分似乎不适用于 actionButton("x", "y") 。我还尝试使用 Shiny 包本身的 updateActionButton ,但这似乎不允许在命令中包含 style = "..."。

library(shiny)
library(shinyjs)
library(shinyBs)
if (interactive()) {
shinyApp(
ui = fluidPage(
useShinyjs(),
inlineCSS(list(.red = "background: red")),
inlineCSS(list(.blue = "style = 'background-color: blue'")),
actionButton("checkbox", "Make it red"),
bsButton("checkbox2", "Make me blue"),
p(id = "element", "Watch what happens to me")
),
server = function(input, output) {
observe({
toggleClass(id = "element", class = "red",
condition = input$checkbox)
})
observe({
toggleCssClass(id = "checkbox2", class = ".blue",
condition = input$checkbox)
})
}
)
}

shinyjs 的演示模型可以在这里找到:http://deanattali.com/shinyjs/overview#demo看起来,toggleClass 似乎适用于 id 为“btn”的按钮,但没有直接找到代码示例,并且来自shinyjs 页面另一部分的间接示例似乎不起作用。

选项3我尝试让style =“background-color: ....read R variable”部分访问包含颜色名称的R变量,即mycolor <-“red”,但这不起作用要么,我对 javascript 的了解太有限,无法弄清楚如何实现这一点。

所以,....如果有人知道如何使用shinyjs或其他与上面编码的按钮一起使用的方法进行颜色切换,我将非常感激,并向您致以永远的感激之情。 (这个问题已经困扰了好几个星期了)

标记

附:我也研究过 bsButtons,但它们对于我想要的默认类选项来说太有限了。

最佳答案

这应该可以在“纯” Shiny 中实现:使用 renderUI() 创建按钮并插入条件来检查按钮是否已被单击。

我决定将信息(是否单击按钮)存储在reactiveVariable中,正如您所写的,您计划触发颜色变化“如果单击按钮,特定元素(即inputlider)链接到按钮的更改”。因此,您还可以从其他输入更改 global$clicked

library(shiny)
shinyApp(
ui = fluidPage(
uiOutput("button")
),
server = function(input, output) {
global <- reactiveValues(clicked = FALSE)

observe({
if(length(input$RunFullModel)){
if(input$RunFullModel) global$clicked <- TRUE
}
})

output$button <- renderUI({
if(!is.null(input$RunFullModel) & global$clicked){
actionButton(inputId= "RunFullModel", label =icon("tree-deciduous", lib = "glyphicon"),
style = "color: white;
background-color: #35e51d;
position: relative;
left: 3%;
height: 35px;
width: 35px;
text-align:center;
text-indent: -2px;
border-radius: 6px;
border-width: 2px")
}else{
actionButton(inputId= "RunFullModel", label =icon("tree-deciduous", lib = "glyphicon"))
}

})
}
)

关于r - 改变颜色actionButton Shiny R,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43641103/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com