当前位置: 首页 > news >正文

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. 运行窗口

注:这个是在上个案例中升级了点内容!!!

http://www.jsqmd.com/news/1215256/

相关文章:

  • 如何让老旧Mac焕发新生:OpenCore Legacy Patcher免费硬件兼容方案终极指南
  • 2026年7月最新哈尔滨劳力士官方售后客户服务热线与维修网点地址汇总 - 劳力士官方服务中心
  • MyBatis 基础CRUD全套实战学习笔记
  • 2026商丘黄金回收实操手册:从称重到结算的九道安全关卡 - 小城生活闲谈
  • 天津开蛋糕店培训内容有哪些
  • Python实现基本搜索引擎
  • 【leetcode】5.最长回文子串js
  • To B 科技公司宣传物料指南:为什么技术公司也要做实体画册?
  • 苹果起诉 OpenAI,表面争机密,实际争的是 AI 硬件入口
  • 郑州墙角发霉、窗边渗水?用“架构排错思维”拆解外墙漏水:基于窜水路径的数据化检测与避坑指南
  • SRE 实战手册(七)|故障复盘:黄金三问与判定三原则
  • Log打印方法调用栈信息
  • unity发布web嵌入到前端页面的接受参数
  • PDK在芯片设计中的核心作用与实战解析
  • 卡地亚中国官方售后服务中心|官方电话和详细网点地址权威信息通告(2026年7月最新) - 卡地亚服务中心
  • 浅谈“一企一技术”研发中心建设与企业创新发展
  • 2026年7月欧米茄中国专柜官方客服热线,最新信息客户服务指南 - 欧米茄官方服务中心
  • 半导体芯片相关名词概念简介
  • 选择马来西亚留学跳板升学,这4个风险要提前规避
  • 朔城区民办幼儿园怎么选?2025朔州家长择校核心维度深度解析朔城区民办幼儿园怎么选?
  • 星露谷物语模组开发终极指南:用SMAPI轻松创建游戏扩展 [特殊字符]
  • CAN总线波形解析:显隐性电平与异常波形诊断
  • 41-深链拉起只到首页-用Want解析和兜底页接住入口
  • 【工科软件类】萌新找工作指南
  • 2026最新8款团队适配AI编程助手深度实测
  • 投机解码:从eagle1到dflash
  • Claude PRD撰写避坑指南:从需求模糊到精准落地的7步标准化流程
  • 浪琴中国官方售后服务中心|全部地址与售后服务热线权威信息公示(2026年7月更新) - 浪琴服务中心
  • Dynamics 365 字段包含中文〇查询异常
  • 限时公开:我为某独角兽定制的ChatGPT面试官Prompt模板(含行为面试/系统设计/反问环节),仅剩87份可下载