Rust-GUI图形库:Iced 计数器项目完整搭建教程(1)
·
一、前置环境准备
- 官网下载安装:https://www.rust-lang.org/tools/install rustc 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:
// 导入Iced界面组件:按钮、文本、通用UI元素
use iced::widget::{button, text};
use iced::Element;
/// 程序入口函数
/// Iced框架标准签名,返回运行结果,处理窗口异常
pub fn main() -> iced::Result {
// 启动GUI应用
// 参数1:update 状态更新函数
// 参数2:view 界面渲染函数
// Iced自动初始化状态为 0,自动维护消息循环、窗口重绘
iced::run(update, view)
}
/// 交互消息枚举
/// 用户所有界面操作都会转化为对应Message,统一交给update处理
#[derive(Debug, Clone)]
enum Message {
// 按钮点击,计数器自增事件
Increment,
}
/// 状态更新逻辑
/// 根据收到的消息修改全局状态
/// counter:可变引用,程序唯一状态(计数器数字)
/// message:界面触发的交互消息
fn update(counter: &mut u64, message: Message) {
match message {
// 收到自增消息,数值 +1
Message::Increment => *counter += 1,
}
}
/// 界面渲染函数
/// 根据当前状态生成UI界面,状态变化会自动重新调用渲染
fn view(counter: &u64) -> Element<'_, Message> {
// 构建按钮组件
// text(counter):按钮内部显示当前计数值
// on_press:绑定点击事件,点击发送 Increment 消息
// into():将按钮转为通用根UI元素返回
button(text(counter))
.on_press(Message::Increment)
.into()
}
四、运行项目
1. 开发模式运行(热编译、带日志)
cargo run
首次运行会下载编译 Iced 及其底层图形依赖,等待几分钟。 运行成功会弹出窗口:一个显示数字的按钮,点击数字持续 + 1。
2. 运行窗口

更多推荐


所有评论(0)