进阶 iced.rs 2026-09-13 21:01:26 · 1 阅读

第7章 Container 容器组件详解

Container 组件可以为内容添加内边距、对齐方式和样式。

由于它能方便地定位和装饰已有的组件,因此被视为 iced 中最主要的构建块之一。你会经常用到它!

和往常一样,你可以使用 widget 模块中的 container 辅助函数来创建它。

use iced::widget::Container;
use iced::Never;

fn main() -> iced::Result {
    iced::run((), view)
}

fn view(_: &()) -> Container<'_, Never> {
use iced::widget::container;

container("This is a bordered box!")
    .padding(10)
    .style(container::bordered_box)
}

内边距

调用 Containerpadding 方法,即可为其内部区域添加内边距。

各方向的内边距可独立配置。padding 模块提供了一系列便捷的工具函数,让这一操作变得轻松。

use iced::widget::Container;
use iced::Never;

fn main() -> iced::Result {
    iced::run((), view)
}

fn view(_: &()) -> Container<'_, Never> {
use iced::padding;
use iced::widget::container;

container("Independent padding!")
    .padding(padding::vertical(30).left(20).right(80))
    .style(container::bordered_box)
}

对齐

Text 组件类似,Container 也会在其边界内对齐其内容。

默认情况下,Container 会继承其内容的尺寸策略。因此,所有的对齐方法都要求提供一个新的 Length,用于确定最终的边界。

你可以将 Container 想象成一幅装裱好的画。画框本身是 Container,画则是内容,内容可以在框内以不同方式对齐。

use iced::widget::Container;
use iced::Never;

fn main() -> iced::Result {
    iced::run((), view)
}

fn view(_: &()) -> Container<'_, Never> {
use iced::widget::container;
use iced::Fill;

let my_box = container("Bottom right!")
    .padding(10)
    .style(container::primary);

container(my_box)
    .padding(10)
    .align_bottom(Fill)
    .align_right(Fill)
    .style(container::bordered_box)
}
上一篇
第6章 6章:文本
下一篇
第8章 更多学习资源

本篇用到的工具

iced
iced
Rust 生态中的跨平台 GUI 框架,采用 Elm 风格的 retained mode 架构

评论 (0)