如果需要在文本或其他可渲染对象周围绘制边框,可以构造一个可渲染对象Panel
,如下示例:
from rich import print
from rich.panel import Panel
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
方法创建面板来使面板适配内容,具体如下所示:
from rich import print
from rich.panel import Panel
print(Panel.fit("Hello, [red]World!"))
Panel
构造器接收一个title
参数(用于在面板顶部绘制一个标题),以及一个subtitle
参数(用于在面板底部绘制一个副标题):
from rich import print
from rich.panel import Panel
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