【问题标题】:prompt-toolkit: Dynamically add and remove buffers to VSplit or HSplit?prompt-toolkit:动态添加和删除缓冲区到 VSplit 或 HSplit?
【发布时间】:2017-11-27 18:15:17
【问题描述】:

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

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

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(...) 函数或类似的东西?

【问题讨论】:

    标签: python user-interface prompt-toolkit


    【解决方案1】:

    这可以通过完全替换Applicationlayout 属性来完成。所以像:

    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')),
            ])
    

    【讨论】:

    • 你不能用新的元素列表替换 Application.layout 吗? prompt_toolkit 的新手?
    猜你喜欢
    • 2013-01-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-11-19
    相关资源
    最近更新 更多