【问题标题】:How to change color of GUI components如何更改 GUI 组件的颜色
【发布时间】:2019-08-27 16:31:54
【问题描述】:

我正在尝试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 组件?感谢您的帮助。

【问题讨论】:

标签: user-interface go fyne


【解决方案1】:

这是在fyne-io/fyne issue 255提出的

我提出了可分配给小部件的单独样式:

但是:

我们设计的一部分是为了提高应用程序的一致性——用户体验不会被“这个标签更大”或“这个下拉菜单是透明的”所影响。

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

因此不支持更改单个按钮的颜色。

Andy Williamsfyne-io/fyne 的作者/主要贡献者,添加in the comments

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

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

【讨论】:

  • 这是完全正确的。拥有与标准颜色样式不同的小部件的唯一方法是实现自定义小部件并自己添加该功能。
  • 但是,有一些语义样式,例如,按钮可以是“主要的,在这种情况下它将使用主题突出显示颜色。
  • @ajwillia.ms 你不会是github.com/andydotxyzgithub.com/fyne-io/fyne 的作者/主要贡献者之一 (github.com/fyne-io/fyne/blob/master/AUTHORS),有什么机会吗?
  • @ajwillia.ms 我已将您的 cmets 包含在答案中以提高知名度。
  • 如果您可以在此处发布一些代码,概述创建a custom label 的主要步骤,那就太好了。
【解决方案2】:

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

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

只是为了在 Fyne 工具包之上重新迭代 cmets,旨在创建简单且快速编程的一致用户体验。每次您创建自定义小部件以便可以使用自定义颜色或样式时,您可能会混淆您的用户,并且您将更加难以维护代码。

【讨论】:

    猜你喜欢
    • 2021-09-06
    • 1970-01-01
    • 1970-01-01
    • 2020-12-31
    • 2012-12-24
    • 2021-02-16
    • 2018-10-21
    • 2019-09-13
    • 2021-03-26
    相关资源
    最近更新 更多