rebol - 删除按钮面

标签 rebol red

大家好。
我想知道如何用一个按钮删除两个按钮面。

我试过这个:

gui: [
  en: button "English" remove [en es]
  es: button "Spanih" remove [en es]
]

而且我必须添加新按钮。

最佳答案

View engine将 GUI 界面建模为对象树;该树中的每个节点称为一个面,该面的每个字段称为一个面。

parentpane 这两个方面分别将一个面与其父节点和子节点互连。因此,根据该理论,删除按钮就是从其父 Pane 中删除 button 面:

view [button "Poof!" [probe select take face/parent/pane 'text]]

然而,这是一种有点受限的方法。移除的面从 View 树中分离,并且不能再使用,除非您将具有相同规范的 face! 对象重新附加回 Pane 。简单地禁用按钮或暂时使其不可见可能更有用。 enabled?visible? 方面可以实现这一点:

view [
    title "Face flags example"
    below
    toggle "Toggle" [foo/enabled?: not foo/enabled?]
    foo: button "Switch" disabled [bar/visible?: not bar/visible?]
    bar: base red
]

您可以根据手头的任务调整此方法。据我了解,您想提供相互排斥的本地化选项; drop-list可能很适合:

view [drop-list data ["en" "es"]]

关于rebol - 删除按钮面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62444806/

相关文章:

constructor - 为什么Rebol中的 'context'和 'object'函数不同,但本质上是相同的?

metaprogramming - REBOL 元编程问题

parsing - 匹配PARSE中的自定义token

parsing - 如何使用 Red 或 Rebol 解析和翻译 DSL

red - 对齐红色列中的按钮

rebol - 使用绑定(bind)在 Red 中执行网络 I/O

rebol - 在 rebol 中读取不成功的 http 数据

red - 将 Red 函数指针传递给 C

utf-8 - 使用 rebol 将编码 UTF8 更改为 UTF 8 BOM

rebol - 从 Rebol 中的系列中删除重复的对象