Skip to content

Paragraph

Paragraph ウィジェットは、ターミナル ユーザー インターフェイスにテキスト コンテンツを表示する方法を提供します。プレーン テキストの表示だけでなく、テキストの折り返し、配置、スタイル設定も処理できます。このページでは、Paragraph ウィジェットの機能について詳しく説明します。

使用法

let p = Paragraph::new("Hello, World!");
f.render_widget(p, chunks[0]);

スタイリングと境界線

テキストにスタイルを適用して、境界線で包むこともできます。

let p = Paragraph::new("Hello, World!")
.style(Style::default().fg(Color::Yellow))
.block(
Block::default()
.borders(Borders::ALL)
.title("Title")
.border_type(BorderType::Rounded)
);
f.render_widget(p, chunks[0]);

ラッピング

Paragraph ウィジェットは、含まれるブロックの使用可能な幅に基づいてコンテンツをラップします。 wrap メソッドを使用して、ラッピング動作を制御することもできます。

let p = Paragraph::new("A very long text that might not fit the container...")
.wrap(Wrap { trim: true });
f.render_widget(p, chunks[0]);

trimtrue に設定すると、各行の末尾の空白が削除されます。

アライメント

let p = Paragraph::new("Centered Text")
.alignment(Alignment::Center);
f.render_widget(p, chunks[0]);

スタイルのテキスト

Paragraph SpanLineText を介してリッチテキストをサポートします。

let mut lines = vec![];
lines.push(Line::from(vec![
Span::styled("Hello ", Style::default().fg(Color::Yellow)),
Span::styled("World", Style::default().fg(Color::Blue).bg(Color::White)),
]));
lines.push(Line::from(vec![
Span::styled("Goodbye ", Style::default().fg(Color::Yellow)),
Span::styled("World", Style::default().fg(Color::Blue).bg(Color::White)),
]));
let text = Text::from(lines);
let p = Paragraph::new(text);
f.render_widget(p, chunks[0]);

スクロール

長いコンテンツについては、 Paragraph はスクロールをサポートしています。

let mut p = Paragraph::new("Lorem ipsum ...")
.scroll((1, 0)); // Scroll down by one line
f.render_widget(p, chunks[0]);