【问题标题】:How to set style on button action如何设置按钮动作的样式
【发布时间】:2017-01-01 12:29:34
【问题描述】:

注意:这是chat上的一个问题

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

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

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

【问题讨论】:

    标签: rebol rebol2


    【解决方案1】:

    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 中有一些效果,并且颜色是在生成 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
    

    【讨论】:

    • 根据pat665.free.fr/gtk/rebol-view.html#sect6 的说法,该代码在 2004 年 6 月有效。也许在那个时候风格的工作方式有所不同?
    • 我不知道是真的改变了按钮的外观还是只是改变了style字的值。感谢您的参考。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-11-09
    • 2012-07-29
    • 1970-01-01
    • 2011-05-28
    • 2021-11-27
    相关资源
    最近更新 更多