iced
iced是Rust的跨平台GUI库。它的灵感来自Elm,一种用于构建web应用程序的令人愉快的函数式语言。
作为一个GUI库,iced可以帮助您为Rust应用程序构建图形用户界面。
iced非常注重简单性和类型安全性。因此,iced试图提供简单的构建块,这些构建块可以与强类型结合在一起,以减少运行时错误的机会。
本书将:
- 向您介绍冰的基本概念。
- 教你如何使用ice构建交互式应用程序。
- 强调扩大和发展结冰应用的原则。
在继续之前,您应该对Rust有一些基本的了解。如果你是Rust的新手,或者在某个时候感到迷茫,我建议你阅读Rust官方书籍。
rust GUI编程iced
iced中Counter的例子跑不了,可以试试这个。
cargo new gui_iced_001
cd gui_iced_001
# 粘贴代码,然后运行
cargo run
代码
use iced::widget::text;
use iced::Sandbox;
pub fn main() -> iced::Result {
Editor::run(iced::Settings::default())
}
struct Editor;
#[derive(Debug)]
enum Message {}
impl Sandbox for Editor {
type Message = Message;
fn new() -> Self {
Self {}
}
fn title(&self) -> String {
"This is a text editor".to_string()
}
fn update(&mut self, message: Message) {
match message {}
}
fn view(&self) -> iced::Element<Message> {
text("This is a text editor").into()
}
fn theme(&self) -> iced::Theme {
iced::Theme::Dark
}
}
cargo.toml
[package]
name = "gui_iced_001"
version = "0.1.0"
edition = "2021"
[dependencies]
iced = "0.12.1"