You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何消除Rich中Panel标题与边框间的多余空格?

解决Rich Panel标题与边框间多余空格的问题

要消除Rich的Panel标题文本(自带前后空格)与边框之间的默认额外间距,同时保留标题本身的空格,可通过以下两种方式实现:

方法1:自定义Box样式

Rich的Panel边框与标题的间距由box样式控制,默认样式会在标题两侧自动添加空格。你可以自定义Box类,移除标题区域的额外间距:

from rich.box import Box
from rich.panel import Panel

# 自定义Box,让标题直接衔接边框
NO_PADDING_BOX = Box(
    top="─",
    bottom="─",
    left="│",
    right="│",
    top_left="┌",
    top_right="┐",
    bottom_left="└",
    bottom_right="┘",
    # 关键:取消标题位置的默认空格填充
    top_middle="",
    top_left_title="┌",
    top_right_title="┐",
)

# 使用自定义Box创建Panel,保留标题自带的前后空格
panel = Panel("Wordle猜词内容", title="  My Title  ", box=NO_PADDING_BOX)

设置后,标题自带的空格会直接紧贴Panel边框,不会产生额外间距。

方法2:手动组合标题与内容

若觉得自定义Box繁琐,可放弃Panel的title参数,手动构建标题与内容的组合,完全控制间距:

from rich.text import Text
from rich.panel import Panel
from rich.align import Align

# 构建带空格的标题,直接衔接边框字符
title_text = Text("┌  My Title  ┐", style="bold cyan")
content = Text("Wordle猜词程序运行内容", style="white")
# 组合标题、内容与底部边框
full_content = Align.center("\n".join([title_text.plain, content.plain, "└────────────┘"]))

# 无默认边框的Panel,仅展示手动构建的内容
panel = Panel(full_content, box=None)

这种方式完全由你掌控标题与边框的距离,适配Colab上的Wordle猜词程序场景。

内容的提问来源于stack exchange,提问作者RussAbbott

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.15 20:12:31