rebol - 如何设置按钮操作的样式

标签 rebol rebol2

注意:这是关于 chat 的问题

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

l: layout [

style bteal button teal
style bred button red

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

view l

想要在按钮上进行这样的更改点击:

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

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

最佳答案

style 仅在 layout 函数中有意义,layout 函数将其用作生成具有预定义面(颜色、尺寸等)

所以,改变面孔的风格并不会改变任何东西。您需要直接更改facet(面的属性)。

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

但是如果您在按钮上执行相同的操作,您可能会感到困惑,因为它的颜色不会改变:

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

这是因为按钮在effects方面有一些效果,并且颜色是在布局函数内生成face时定义的。

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

如果您清除该 block ,那么您可以看到更改,或者您应该相应地更改该 block 。

编辑:

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

l: layout [
    style bteal button teal effect []
    style bred button red effect []
    b1: bteal "Ok" [b1/color: red]
]
view l

关于rebol - 如何设置按钮操作的样式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41415448/

相关文章:

string - 将值保存到 block 而不是表示它的单词标签

重建 2 : Using a parse rule to check input without executing code

recursion - 打破递归函数

xml - 替换 XML 文件中的特定值

dll - 如何做加载/库

view - REBOL/View 有帮助系统吗?

rebol - REBOL 中的多行语句?

在 REBOL 中解析数据 block

user-interface - 在 Rebol 中刷新图像

rebol - 在 Rebol 中以编程方式检索函数参数