渲染组

The Group 类允许您将多个可渲染对象分组在一起,以便它们可以在只能提供单个可渲染对象的上下文中进行渲染。例如,您可能希望在 Panel 中显示多个可渲染对象。

要在第三个面板中渲染两个面板,您将使用可渲染对象作为位置参数构建一个组,然后将结果包装在另一个面板中

from rich import print
from rich.console import Group
from rich.panel import Panel

panel_group = Group(
    Panel("Hello", style="on blue"),
    Panel("World", style="on red"),
)
print(Panel(panel_group))

当您提前知道组中将有哪些可渲染对象时,这种模式很好,但是如果您有大量可渲染对象(尤其是在它们是动态的时),则会变得很麻烦。Rich 提供了一个 group() 装饰器来帮助处理这种情况。装饰器从可渲染对象迭代器构建一个组。以下代码等效于使用装饰器的上一个示例

from rich import print
from rich.console import group
from rich.panel import Panel

@group()
def get_panels():
    yield Panel("Hello", style="on blue")
    yield Panel("World", style="on red")

print(Panel(get_panels()))