渲染组¶
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()))