news 2026/7/7 1:57:32

Rust-GUI图形库:Iced 计数器项目完整搭建教程(1)

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
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. 运行窗口

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/7/7 1:55:57

不教简笔画套路的创意美育,家长如何筛选班级

拒绝简笔画套路&#xff1a;家长如何筛选注重思维启发的创意美育班级在为孩子规划艺术教育路径时&#xff0c;越来越多的家长开始从关注“画得像不像”转向重视“创造力与思维力”的培养。需要明确的是&#xff0c;本文旨在基于各品牌公开的课程体系、教育理念及适用人群整理参…

作者头像 李华
网站建设 2026/7/7 1:46:43

第4篇:抽象工厂模式——产品族一键创建

第4篇&#xff1a;抽象工厂模式——产品族一键创建 摘要&#xff1a;当需要创建一系列相互关联的产品&#xff08;产品族&#xff09;时&#xff0c;抽象工厂模式能保证风格统一、一键切换。本文详解其实现、优缺点&#xff0c;并指出其适用场景。 本文是《Java 23 种设计模式&…

作者头像 李华
网站建设 2026/7/7 1:46:03

138、转置卷积替换 nn.Upsample 的实验:可学习上采样 vs 固定插值的精度对比

138、转置卷积替换 nn.Upsample 的实验:可学习上采样 vs 固定插值的精度对比 一个让我熬夜三天的bug 去年做工业缺陷检测项目,模型在边缘设备上部署时发现一个诡异现象:训练时mAP@0.5能到0.92,但转成TensorRT后直接掉到0.78。排查了两天,最后定位到是nn.Upsample的biline…

作者头像 李华
网站建设 2026/7/7 1:36:39

.NET 8 与 .NET 9 即将停止支持,微软建议升级至 .NET 10

微软将于 2026 年 11 月 10 日终止对 .NET 8 和 .NET 9 平台的支持&#xff0c;并建议现有用户尽快升级至 .NET 10。自该日期起&#xff0c;微软将不再为 .NET 8 和 .NET 9 提供服务更新、安全修复或技术支持。微软高级项目经理 Rahul Bhandari 于 6 月 29 日在博客文章中表示&…

作者头像 李华