Rust語言使用iced實現簡單GUI頁面

使用cargo新建一個rust項目

cargo new gui_demo
cd gui_demo

編輯Cargo.toml文件?,添加iced依賴

[package]
name = "gui_demo"
version = "0.1.0"
edition = "2021"[dependencies]
iced = "0.4.2"

編輯src/main.rs文件:

use iced::{button, widget::{Button, Column, Text}, Application, Command, Element, Settings, Subscription};
use iced::executor::Default as Executor;// 定義應用程序的狀態
struct RustGuiApp {count: i32,button_state: button::State,
}// 定義應用程序的消息類型
#[derive(Debug, Clone, Copy)]
enum Message {IncrementPressed,
}impl Application for RustGuiApp {type Executor = Executor;type Message = Message;type Flags = ();fn new(_flags: ()) -> (Self, Command<Self::Message>) {(RustGuiApp {count: 0,button_state: button::State::new(),},Command::none(),)}// 設置窗口標題fn title(&self) -> String {String::from("Rust GUI Example")}fn update(&mut self, message: Self::Message) -> Command<Self::Message> {if let Message::IncrementPressed = message {self.count += 1;}Command::none()}fn view(&mut self) -> Element<Self::Message> {let button = Button::new(&mut self.button_state, Text::new("Increment")).on_press(Message::IncrementPressed);//    添加文字和一些你想加的東西Column::new().push(Text::new("Hello, Rust GUI!").size(50)).push(Text::new(self.count.to_string()).size(50)).push(button).into()}fn subscription(&self) -> Subscription<Self::Message> {Subscription::none()}
}fn main() -> iced::Result {RustGuiApp::run(Settings::default())
}

最后使用命令運行

cargo run

運行效果展示,還是挺不錯滴

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/65751.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/65751.shtml
英文地址,請注明出處:http://en.pswp.cn/web/65751.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Github提交Pull Request教程 Git基礎掃盲(零基礎易懂)

1 PR是什么&#xff1f; PR&#xff0c;全稱Pull Request&#xff08;拉取請求&#xff09;&#xff0c;是一種非常重要的協作機制&#xff0c;它是 Git 和 GitHub 等代碼托管平臺中常見的功能&#xff0c;被廣泛用于參與社區貢獻&#xff0c;從而促進項目的發展。 PR的整個過…

MySQL 中刪除重復數據 SQL 寫法

要在 MySQL 中刪除重復的數據并只保留一條&#xff0c;可以使用下面的方法&#xff08;要用的時候直接復制小改下條件和表名稱即即可&#xff09; 方法一&#xff1a;使用 left join 子查詢刪除重復數據(推薦) 溫馨提示&#xff1a;本人在 500w 數據下執行此 SQL 耗費 15s-30s…

RabbitMQ 可觀測性最佳實踐

RabbitMQ 簡介 RabbitMQ 是一個開源的消息代理和隊列服務器&#xff0c;用 Erlang 語言編寫&#xff0c;支持多種客戶端。它通過使用交換機&#xff08;Exchanges&#xff09;、隊列&#xff08;Queues&#xff09;和綁定&#xff08;Bindings&#xff09;來路由消息&#xff…

美攝科技PC端視頻編輯解決方案,為企業打造專屬的高效創作平臺

在當今這個信息爆炸的時代&#xff0c;視頻已成為不可或缺的重要內容形式&#xff0c;美攝科技推出了PC端視頻編輯解決方案的私有化部署服務&#xff0c;旨在為企業提供一款量身定制的高效創作平臺。 一、全面功能&#xff0c;滿足企業多樣化需求 美攝科技的PC端視頻編輯解決…

【Oracle篇】深入了解執行計劃中的訪問路徑(含表級別、B樹索引、位圖索引、簇表四大類訪問路徑)

&#x1f4ab;《博主介紹》&#xff1a;?又是一天沒白過&#xff0c;我是奈斯&#xff0c;從事IT領域? &#x1f4ab;《擅長領域》&#xff1a;??擅長阿里云AnalyticDB for MySQL(分布式數據倉庫)、Oracle、MySQL、Linux、prometheus監控&#xff1b;并對SQLserver、NoSQL(…

騰訊云AI代碼助手編程挑戰賽-廚房助手之AI大廚

騰訊云AI代碼助手編程挑戰賽-廚房助手之AI大廚 作品簡介 身處當今如火箭般迅猛發展的互聯網時代&#xff0c;智能聊天助手已然化身成為提升用戶體驗的關鍵利器&#xff0c;全方位滲透至人們的數字生活。 緊緊跟隨著這股洶涌澎湃的時代浪潮&#xff0c;我毅然投身于極具挑戰性…

vscode 無法使用npm, cmd命令行窗口可以正常執行

解決方法&#xff1a; 執行命令獲得命令的位置 get-command npm 得到如下 然后刪除或者修改 npm.ps1文件 讓其不能使用就行。然后重啟vscode即可。 pnpm 同理即可 另外加速源 國內鏡像源&#xff08;淘寶&#xff09;&#xff1a; npm config set registry https://regist…

簡易CPU設計入門:算術邏輯單元(四)

項目代碼下載 請大家首先準備好本項目所用的源代碼。如果已經下載了&#xff0c;那就不用重復下載了。如果還沒有下載&#xff0c;那么&#xff0c;請大家點擊下方鏈接&#xff0c;來了解下載本項目的CPU源代碼的方法。 CSDN文章&#xff1a;下載本項目代碼 上述鏈接為本項目…

Spring Boot 和微服務:快速入門指南

&#x1f496; 歡迎來到我的博客&#xff01; 非常高興能在這里與您相遇。在這里&#xff0c;您不僅能獲得有趣的技術分享&#xff0c;還能感受到輕松愉快的氛圍。無論您是編程新手&#xff0c;還是資深開發者&#xff0c;都能在這里找到屬于您的知識寶藏&#xff0c;學習和成長…

VSCode 使用鼠標滾輪控制字體

一、 文件 | 首選項 | 設置 二、單擊在 settings.json中編輯 "editor.mouseWheelZoom": true 注注注意&#xff1a;保存哦&#xff01;ctrlS 三、測試 按住ctrl鼠標滾輪&#xff0c;控制字體大小

tip:vue中路由跳轉,返回是還想保留原來的搜索條件

新寫的一個項目&#xff0c;使用后發現&#xff0c;點“詳細”跳轉到詳情頁面。返回時&#xff0c;原來的篩條件沒了&#xff0c;又把全部的數據都查詢出來&#xff0c;還需要重新篩選一下&#xff0c;使用起來很不友好。 解決辦法&#xff1a;瀏覽器本地存儲&#xff08;Local…

rabbitmq的三個交換機及簡單使用

提前說一下&#xff0c;創建隊列&#xff0c;交換機&#xff0c;綁定交換機和隊列都是在生產者。消費者只負責監聽就行了&#xff0c;不用配其他的。 完成這個場景需要兩個服務哦。 1直連交換機-生產者的代碼。 在配置類中創建隊列&#xff0c;交換機&#xff0c;綁定交換機…

uniapp 使用 pinia 狀態持久化

1.創建文件 stores -index.js -global.js2.對應文件內容 index.js 安裝插件 npm i pinia-plugin-persistedstate import { createPinia } from pinia; import persist from pinia-plugin-persistedstate; const pinia createPinia(); pinia.use(persist); export default pi…

代碼隨想錄算法訓練營第3天(鏈表1)| 203.移除鏈表元素 707.設計鏈表 206.反轉鏈表

一、203.移除鏈表元素 題目&#xff1a;203. 移除鏈表元素 - 力扣&#xff08;LeetCode&#xff09; 視頻&#xff1a;手把手帶你學會操作鏈表 | LeetCode&#xff1a;203.移除鏈表元素_嗶哩嗶哩_bilibili 講解&#xff1a;代碼隨想錄 注意&#xff1a; 針對頭結點和非頭結點的…

NetMQ里Push-Pull模式,消息隔一收一問題小記

問題&#xff1a; 本機環境下&#xff0c;在push端向pull端發送消息的過程中&#xff0c;發現同一個進程里的pusher和puller代碼&#xff0c;可以準確地完成收發&#xff1b; 然而&#xff0c;將代碼放在兩個進程里&#xff0c;將pusher發送的消息從1計數&#xff0c;puller端竟…

CES Asia 2025科技盛宴,AI智能體成焦點

2025第七屆亞洲消費電子技術展&#xff08;CES Asia賽逸展&#xff09;將在北京拉開帷幕&#xff0c;AI智能體有望成為展會的核心亮點。 深圳市人工智能行業協會發文表示全力支持CES Asia 2025&#xff08;賽逸展&#xff09;&#xff0c;稱其為人工智能領域的創新發展提供了強…

matlab編寫分段Hermite插值多項式

文章目錄 原理使用分段Hermite插值多項式原因公式第一類的兩個插值積函數第二類的兩個插值積函數 例題法一法二 代碼分段 Hermite 插值的思路&#xff1a;分段 Hermite 插值多項式的構造&#xff1a;MATLAB 實現代碼&#xff1a;結果如圖&#xff1a;注歸一化變量的作用&#x…

Cline(原Claude Dev)開源的IDE AI插件,如何搭配OpenRouter實現cursor功能,Cline怎么使用

Cline&#xff08;原Claude Dev&#xff09;是一個開源的IDE AI插件&#xff0c;可以使用你的命令行界面和編輯器的人工智能助手。 你可以直接在VS Code編輯器進行安裝。如果你使用過Cursor AI IDE的話&#xff0c;可以嘗試最新發布的Cline3.1版本。 在OpenRouter上&#xff0…

計科高可用服務器架構實訓(防火墻、雙機熱備,VRRP、MSTP、DHCP、OSPF)

一、項目介紹 需求分析&#xff1a; &#xff08;1&#xff09;總部和分部要求網絡拓撲簡單&#xff0c;方便維護&#xff0c;網絡有擴展和冗余性&#xff1b; &#xff08;2&#xff09;總部分財務部&#xff0c;人事部&#xff0c;工程部&#xff0c;技術部&#xff0c;提供…

企業級PHP異步RabbitMQ協程版客戶端 2.0 正式發布

概述 workerman/rabbitmq 是一個異步RabbitMQ客戶端&#xff0c;使用AMQP協議。 RabbitMQ是一個基于AMQP&#xff08;高級消息隊列協議&#xff09;實現的開源消息組件&#xff0c;它主要用于在分布式系統中存儲和轉發消息。RabbitMQ由高性能、高可用以及高擴展性出名的Erlan…