如何更改 GUI 组件的颜色



我正在尝试以下演示代码fyne

package main
import (
"fyne.io/fyne/app"
"fyne.io/fyne/widget"
)
func main() {
a := app.New()
w := a.NewWindow("Hello")
w.SetContent(
widget.NewVBox(
widget.NewLabel("Hello Fyne!"),
widget.NewButton("Quit", func(){a.Quit()} ),
),
)
w.ShowAndRun()
}

它运行正常,但我想将标签的颜色更改为蓝色,将按钮的颜色更改为绿色。我看到有theme但这似乎是针对整个应用程序而不是单个元素的。

如何将不同的颜色应用于不同的 GUI 组件?感谢您的帮助。

这是在第 255 期fyne-io/fyne中提出的

我建议可分配给小部件的各个样式:

但:

我们设计的一部分是促进应用程序的一致性 - 用户体验不会因"此标签较大"或"此下拉列表透明"而受到微不足道的影响。

Fyne的方法是小部件具有固定的样式(可以主题化),但画布仍然完全可用于执行开发人员选择编码的任何特定设计。

因此,没有本机支持来更改单个按钮的颜色。

Andy Williams,fyne-io/fyne的作者/主要贡献者,在评论中补充道:

这是非常正确的。
使小部件的样式与标准颜色不同的唯一方法是实现自定义小部件并自己添加该功能。

但是,有一些语义样式,按钮可以是"主要的,例如,在这种情况下,它将使用主题突出显示颜色

由于 Fyne 中的标准小部件不支持自定义,因此对此没有简短的答案(除了我们不建议这样做)。

如果您出于用户需要的某种正当理由必须这样做,那么您应该查看我们的开发人员文档,其中简要介绍了如何编写自定义小部件。但是,我们的目标是在今年晚些时候的 1.2 版本中简化此过程。

只是为了重申Fyne工具包上面的评论,旨在创建一个简单快速的一致用户体验。每次创建自定义小部件以便可以自定义颜色或样式时,您可能会让用户感到困惑,并且会使维护代码变得更加困难。

最新更新