【问题标题】:Dynamic layout additions in Rebol3Rebol3 中的动态布局添加
【发布时间】:2015-02-16 14:50:56
【问题描述】:

我想动态地将一个按钮添加到视图的布局中,导致此添加的参与者属于已经是布局一部分的按钮。

我是从这个开始的:

REBOL [title: "Dynamic Button Addition"]
tilesize: 60x60
curtile: 1
stylize [
    p: button [
        facets: [init-size: tilesize  max-size: tilesize]
        actors: [
            on-action: [
                ++ curtile
                append tiles compose [ p (to-string curtile) ]
                print ? tiles/options/content                
                v/redraw
            ]
        ]
    ]
]
v: [
    tiles: hgroup [ p "1" ]
]
view v

...tiles/options/content 的值似乎不会随着每次点击而改变。

如果进行这些更改,我可以更改它:

                append tiledata compose [ p (to-string curtile) ]

tiledata: [ p "1" ]
v: [
    tiles: hgroup tiledata

但是,这不会导致屏幕发生任何变化。如果我用这个替换最后四行:

v: view [
    tiles: hgroup tiledata
]

...所以v 现在是视图而不是视图的布局,单击时出现此错误:

** Script error: v has no value
** Where: actor all foreach do-actor unless do-face if actor all foreach do-actor if do-event do-event if do-event either -apply- wake-up loop -apply- wait forever try do-events if view do either either either -apply-
** Near: actor face :data

这对我来说很有意义,因为 v 尚未完成定义,直到我退出程序 IIUC。

那么,我如何在程序结束之前更改v,但在它被传递给view 之后?

【问题讨论】:

    标签: user-interface dynamic rebol3


    【解决方案1】:

    不是很好,但如果你替换它就可以工作

                   v/redraw
    

    这两行

                    unview/all          
                    view v
    

    how to update a layout that has already be viewed上有一个真实的动态例子

    我会简化的

    stylize [
      tbox: hpanel [
        actors: [
            on-make: [
                append face/options [
                    content: [
                    ]
                ]
                do-actor/style face 'on-make none 'hpanel
            ]
        ]
      ]
    ]
    
    view/across [
      button "button 1"
        on-action [
            append-content test compose [
                button ( join "button "   2 + length? test/gob)
            ]
        ]   
      test: tbox
     ]
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-01-25
      • 1970-01-01
      • 2014-04-29
      • 1970-01-01
      • 1970-01-01
      • 2016-06-05
      • 1970-01-01
      相关资源
      最近更新 更多