使用红色语言同时显示2个窗口

时间:2017-10-09 03:45:58

标签: window rebol red

除非按下退出按钮,否则如何同时显示这两个单独的窗口并保持打开状态?

   Red []

   view/flags [ below
            text "second view"
            f2: field "f2 text"
            ] 'no-buttons

   view/flags [ below
        text "first view"
        b1: button "Print f2 text" [print f2/text]
        quitb: button "quit" [quit]
    ] 'no-buttons

我尝试将第二个视图放在一个函数中并从第一个视图调用它 - 但它只显示第二个视图(第二个视图显示在第二个视图后由Alt-F4关闭)。

1 个答案:

答案 0 :(得分:4)

view的调用是一个阻塞调用,它将运行自己的事件循环,直到它被关闭。 view/no-wait将在没有新事件循环的情况下打开窗口,因此它不会阻塞(仍需要事件循环来处理事件)。所以你可以打开第一个窗口作为非阻塞,最后一个窗口打开阻塞模式,用于运行事件循环:

view/no-wait/flags [
    below
    text "second view"
    f2: field "f2 text"
] 'no-buttons

view/flags [
    below
    text "first view"
    b1: button "Print f2 text" [print f2/text]
    quitb: button "quit" [quit]
] 'no-buttons