如何在按钮操作上设置样式

时间:2017-01-01 12:29:35

标签: rebol rebol2

注意:这是关于chat

的问题

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

l: layout [

style bteal button teal
style bred button red

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

view l

想要在button点击:

上进行更改

initially - > expected on click

答案可能与vid是一种方言有关。 此外,style字如何评估其内容

附录

可能不是。

在:

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

后:

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

所以,正在设置的是正确的。也许需要触发一个事件?

1 个答案:

答案 0 :(得分:4)

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

因此,改变面部的风格并没有改变任何东西。您需要直接更改构面(面部属性)。

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

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

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

这是因为按钮在effects facet中有一些效果,并且在布局功能中生成面部时颜色是在那里定义的。

>> ? 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