发布时间:2026/7/18 20:09:56
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. 运行窗口注这个是在上个案例中升级了点内容

相关新闻

2026/7/18 20:04:56

Claude Code 智能体循环入门

Getting started with loops 本文译自 Delba Oliveira 的文章 Getting started with loops。 以下是原文翻译: 编程圈最近的热门话题是给智能体“设计循环(loop)”而非写提示词,但对 loop 的定义,X 上说法各不相同。…

2026/7/18 21:25:01

高效解决Navicat试用到期问题:macOS用户必备的重置工具指南

高效解决Navicat试用到期问题:macOS用户必备的重置工具指南 【免费下载链接】navicat_reset_mac navicat mac版无限重置试用期脚本 Navicat Mac Version Unlimited Trial Reset Script 项目地址: https://gitcode.com/gh_mirrors/na/navicat_reset_mac 如果你…

2026/7/18 21:25:01

手机空间无损清理实用技巧:四款主流工具功能测评

在日常使用手机的过程中,多数用户都会遇到设备存储空间不足、运行流畅度降低的问题。传统的空间整理方式大多存在一定弊端,手动整理文件耗时费力,且无法清理设备深层的冗余数据,而普通整理工具往往文件识别能力有限,难…

2026/7/18 21:25:01

Java 面向对象

目录1. 什么是面向对象?2. 面向对象和面向过程3. 总结1. 什么是面向对象? 是一种主要依靠对象之间的交互解决问题的思想。 2. 面向对象和面向过程 假设吃牛排 面向过程:如果在家,为了吃到好吃的牛排,需要关注做牛排的…

2026/7/18 21:25:01

3步掌握开源视频下载神器:轻松收藏全网视频资源

3步掌握开源视频下载神器:轻松收藏全网视频资源 【免费下载链接】VideoDownloadHelper Chrome Extension to Help Download Video for Some Video Sites. 项目地址: https://gitcode.com/gh_mirrors/vi/VideoDownloadHelper 还在为无法保存网页视频而烦恼吗&…

2026/7/18 21:25:01

多模态 AI 在 UI 异常检测中的应用:截图+代码的双通道分析

多模态 AI 在 UI 异常检测中的应用:截图代码的双通道分析 一、那个"看着正常但功能死掉"的表格排序按钮 QA 报告了一个 Bug:"用户管理表格的排序按钮点击没反应。"打开页面一看,按钮视觉完好——蓝色箭头图标、圆角边框、…

2026/7/17 5:59:06

3步解锁音乐自由:ncmdumpGUI终极NCM文件解密转换指南

3步解锁音乐自由:ncmdumpGUI终极NCM文件解密转换指南 【免费下载链接】ncmdumpGUI C#版本网易云音乐ncm文件格式转换,Windows图形界面版本 项目地址: https://gitcode.com/gh_mirrors/nc/ncmdumpGUI 你是否曾在网易云音乐下载了心爱的歌曲&#…

2026/7/18 10:53:38

CANoe 19 SP3 配置 GB/T 27930-2023 A类系统:3步搭建BMS仿真测试环境

CANoe 19 SP3 配置 GB/T 27930-2023 A类系统:3步搭建BMS仿真测试环境随着新能源汽车行业的快速发展,充电通信协议的标准化和测试验证变得尤为重要。GB/T 27930-2023作为中国智能充电协议的最新版本,对充电机与电动汽车之间的通信提出了更严格…

2026/7/17 7:39:19

3步搞定RTL8852BE驱动:从零开始配置Wi-Fi 6网卡

3步搞定RTL8852BE驱动:从零开始配置Wi-Fi 6网卡 【免费下载链接】rtl8852be Realtek Linux WLAN Driver for RTL8852BE 项目地址: https://gitcode.com/gh_mirrors/rt/rtl8852be 还在为Linux系统无法识别RTL8852BE Wi-Fi 6网卡而烦恼吗?&#x1f…

2026/7/18 0:00:24

某智驾大牛创业

作者:钟声编辑:Mark出品:红色星际头图:智能驾驶图片据悉,国内某头部智驾公司端到端模型技术大牛Z投身创业,并且已经拿到融资。Z不仅是该头部公司内部最年轻的对标阿里P10级别技术负责⼈,更是业内…

2026/7/18 16:50:29

3个高效策略:快速掌握Axure中文界面配置

3个高效策略:快速掌握Axure中文界面配置 【免费下载链接】axure-cn Chinese language file for Axure RP. Axure RP 简体中文语言包。支持 Axure 11、10、9。不定期更新。 项目地址: https://gitcode.com/gh_mirrors/ax/axure-cn 还在为Axure RP的英文界面感…