Rust-GUI图形库:Iced 计数器项目添加增减按钮与文本框(2)
一、前置环境准备官网下载安装https://www.rust-lang.org/tools/installrustc 1.96.1 (31fca3adb 2026-06-26)二、创建项目Windows 打开 PowerShell / Linux/macOS 终端执行1. 创建二进制项目# 创建名为 iced_counter 的项目 cargo new iced_counter # 进入项目目录 cd iced_counter项目目录iced_counter/ ├── Cargo.toml # 项目配置、依赖管理 ├── Cargo.lock # 依赖版本锁定文件自动生成无需修改 ├── src/ │ └── main.rs # 全部业务代码窗口、逻辑、UI └── target/ # 编译产物目录自动生成 ├── debug/ # cargo run 开发编译文件 └── release/ # --release 发布成品程序2. 添加 Iced 依赖修改 Cargo.toml[package] name iced_counter version 0.1.0 edition 2021 # 依赖 Iced GUI 框架使用最新稳定版 [dependencies] iced 0.14说明iced 0.14会自动引入窗口、组件、渲染全套功能无需额外细分依赖。三、完整 src/main.rs整理带注释代码直接覆盖自动生成的src/main.rs// 引入居中对齐常量 use iced::Center; // 引入布局列容器、按钮、文本基础组件 use iced::widget::{Column, button, column, text}; // 程序入口函数返回iced运行结果 pub fn main() - iced::Result { // 启动窗口程序传入状态更新函数 UI渲染视图函数 iced::run(Counter::update, Counter::view) } // 计数器状态结构体存储界面需要维护的数据 #[derive(Default)] struct Counter { // 计数值 value: i64, } // 界面交互消息枚举所有用户操作都会生成对应消息 #[derive(Debug, Clone, Copy)] enum Message { // 点击加号按钮 Increment, // 点击减号按钮 Decrement, } impl Counter { /// 根据收到的消息更新内部状态 /// self: 计数器自身状态 /// message: 用户交互产生的事件消息 fn update(mut self, message: Message) { match message { // 加1逻辑 Message::Increment { self.value 1; } // 减1逻辑 Message::Decrement { self.value - 1; } } } /// 渲染整个界面视图返回垂直布局容器 /// self: 当前计数器状态用于展示数据 /// 返回值包含交互消息的Column布局组件 fn view(self) - Column_, Message { column![ // 加号按钮点击触发Increment消息 button(Increment).on_press(Message::Increment), // 显示当前计数值字体大小50 text(self.value).size(50), // 减号按钮点击触发Decrement消息 button(Decrement).on_press(Message::Decrement) ] // 整体内边距20像素 .padding(20) // 水平方向所有子元素居中对齐 .align_x(Center) } }四、运行项目1. 开发模式运行热编译、带日志cargo run首次运行会下载编译 Iced 及其底层图形依赖等待几分钟。 运行成功会弹出窗口。2. 运行窗口注这个是在上个案例中升级了点内容