3

是否可以添加和删除缓冲区?所以我想改变一个全屏布局。

例如,我想要一些这样的布局:

layout = VSplit([
Window(content=BufferControl(buffer_name=DEFAULT_BUFFER)),
Window(width=D.exact(1),
       content=FillControl('|', token=Token.Line)),
Window(content=BufferControl(buffer_name='RESULT')),
])

现在我想在一段时间后添加另一个缓冲区,以便布局是这样的......

layout = VSplit([
Window(content=BufferControl(buffer_name=DEFAULT_BUFFER)),
Window(width=D.exact(1),
       content=FillControl('|', token=Token.Line)),
Window(content=BufferControl(buffer_name='RESULT')),
Window(content=BufferControl(buffer_name='NEW_BUFFER')),
])

是否有一些 layout.addbuffer(...) 函数或类似的东西?

4

1 回答 1

1

这可以通过完全layout替换Application. 所以像:

class MyApplication(Application):

    def __init__(self):
        # Initialise with the first layout
        super(MyApplication, self).__init__(
            layout=VSplit([
                Window(content=BufferControl(buffer_name=DEFAULT_BUFFER)),
                Window(width=D.exact(1),
                       content=FillControl('|', token=Token.Line)),
                Window(content=BufferControl(buffer_name='RESULT')),
            ]),
        )

    def add_buffer(self):
        # Update to use a new layout
        self.layout = VSplit([
            Window(content=BufferControl(buffer_name=DEFAULT_BUFFER)),
            Window(width=D.exact(1),
                   content=FillControl('|', token=Token.Line)),
            Window(content=BufferControl(buffer_name='RESULT')),
            Window(content=BufferControl(buffer_name='NEW_BUFFER')),
        ])
于 2018-07-10T21:53:48.100 回答