🚀 原文地址:https://rich.readthedocs.io/en/latest/panel.html

    如果需要在文本或其他可渲染对象周围绘制边框,可以构造一个可渲染对象Panel,如下示例:

    1. from rich import print
    2. from rich.panel import Panel
    3. print(Panel("Hello, [red]World!"))

    我们还可以通过将box参数设置为Panel构造器来更改面板的样式,默认是box.ROUNDED。除此之外,还有以下样式,具体样式效果可以使用python -m rich.box进行查看,也可以参考这篇官方文档

    • box.ASCII
    • box.SQUARE
    • box.MINIMAL
    • box.MINIMAL_HEAVY_HEAD
    • box.MINIMAL_DOUBLE_HEAD
    • box.SIMPLE
    • box.SIMPLE_HEAVY
    • box.HORIZONTALS
    • box.ROUNDED
    • box.HEAVY
    • box.HEAVY_EDGE
    • box.HEAVY_HEAD
    • box.DOUBLE
    • box.DOUBLE_EDGE

    面板将延伸到终端的整个宽度,当然我们也可以通过在构造器上设置expand=False或使用fit方法创建面板来使面板适配内容,具体如下所示:

    1. from rich import print
    2. from rich.panel import Panel
    3. print(Panel.fit("Hello, [red]World!"))

    Panel构造器接收一个title参数(用于在面板顶部绘制一个标题),以及一个subtitle参数(用于在面板底部绘制一个副标题):

    1. from rich import print
    2. from rich.panel import Panel
    3. print(Panel("Hello, [red]World!", title="Welcome", subtitle="Thank you"))

    Panel类其他可用参数如下:

    • renderable:终端可渲染对象
    • box:定义边框外观的 BOX 实例,默认为box.ROUNDED
    • safe_box:使用光栅字体禁用不显示在 Windows 旧终端上的框字符
    • expand:如果是True的话,面板拉伸以填充控制台宽度,否则将调整大小以适应内容,默认为True
    • style:面板的样式(边框和内容)
    • bord_style:边框的样式
    • width:面板的宽度,默认为None来进行自动检测
    • height:面板的高度,默认为None来进行自动检测
    • padding:可渲染周围的填充,默认为 0
    • highlight:启用面板标题的自动突出显示,默认为False