2

注意:这是一个关于聊天的问题

如何更改按下按钮的样式?

l: layout [

style bteal button teal
style bred button red

b1: bteal "Ok" [b1/style: 'bred]
]

view l

想要在button点击时像这样改变:

最初->预计点击

答案可能与 vid 是一种方言有关。此外,这个style词如何评估它的内容

附录

可能不是。

前:

>> ? b1/style
B1/STYLE is a word of value: bteal

后:

>> ? b1/style
B1/STYLE is a word of value: bred

因此,设置的内容是正确的。也许需要触发一个事件?

4

1 回答 1

4

stylelayout仅在函数中有意义,layout函数将其用作生成具有预定义面(颜色、大小等)的新面的快捷方式

所以,改变一张脸的风格不会改变任何东西。您需要直接更改构面(面的属性)。

lay: layout [
    style by box yellow
    b: by "Test" [b/color: random white  show b]
]
view lay

但是如果你在 a 上做同样的事情,button你可能会感到困惑,因为它的颜色不会改变:

lay: layout [
    b: button yellow "Test" [b/color: random white  show b]
]
view lay

这是因为按钮在 facet 中有一些效果,effects并且颜色是在 face inside layout 函数的生成过程中定义的。

>> ? b/effects
B/EFFECTS is a block of value: [
    [gradient 0x1 255.255.32 223.223.0]
    [gradient 0x-1 255.255.32 223.223.0]
]

如果您clear使用该块,那么您可以看到更改,或者您应该相应地更改该块。

编辑:

这是您的示例的工作版本:

l: layout [
    style bteal button teal effect []
    style bred button red effect []
    b1: bteal "Ok" [b1/color: red]
]
view l
于 2017-01-02T07:20:31.993 回答