提示工具包:对齐 VSplit

时间:2021-02-28 12:00:15

标签: python python-3.x prompt-toolkit

如何对齐这些元素?

header = VSplit(                                                            
    children=[                                                              
        Label("LEFT ", 
              dont_extend_width=True),             
        Label("  CENTER  ",
              dont_extend_width=True),
        Label(" RIGHT RIGHT RIGHT RIGHT",
              dont_extend_width=True),
    ],
    padding=Dimension(weight=99),                                                   
    padding_char="-",                                                       
    align="CENTER",                                                         
)

enter image description here

CENTER 在 LEFT 和 RIGHT 之间居中,而不是在容器上居中。由于填充,RIGHT 仅在右边缘。如果我删除填充,一切都会左对齐,没有间隙。

我可能在这里遗漏了一些基本的东西,但我已经停滞了几个小时。

1 个答案:

答案 0 :(得分:0)

我发现我可以使用 FloatContainer 来解决这个问题,CENTER 作为它的背景元素,LEFT 和 RIGHT 作为 Floats:

header = FloatContainer(
    content=Window(
        FormattedTextControl("  CENTER  "),
        align=WindowAlign.CENTER,
        height=1,
        char="-",
    ),
    floats=[
        Float(Label("LEFT "), left=0),
        Float(Label(" RIGHT RIGHT RIGHT RIGHT"), right=0),
    ],
)

Center is centered