注:此文适合于对rust有一些了解的朋友
iced是一个跨平台的GUI库,用于为rust语言程序构建UI界面。
iced的基本逻辑是:
UI交互产生消息message,message传递给后台的update,在这个函数中编写逻辑,然后通过View函数更新UI。
- Take the result of our view logic and layout its widgets.
获取视图逻辑的结果并布局其小部件。- Process events from our system and produce messages for our update
logic. 处理来自系统的事件,并为我们的更新逻辑生成消息。- Draw the resulting user interface. 绘制生成的用户界面。
下面我们将通过举例来说明iced如何显示一个窗口,以及如何在窗口上显示中文。
一、如何用iced构建窗口:
我们构建一个基本窗口,窗口有一个按钮,一个文本框,一个标签,在文本框输入字符,点击按钮后,标签上显示相同内容。
UI实例预览:
1 导入库
use iced::widget::{
button, column, text, text_input};
use iced::{
Alignment, Element, Sandbox, Settings};
2、配置Cargo.toml
[dependencies]
iced="0.10"
这样,使用cargo check时,会自动安装iced库。
3、构建窗口程序
主函数:
pub fn main() -> iced::Result {
Counter::run(Settings::default()) //此处为使用默认窗口设置
}
定义数据结构:
//创建结构体struct
struct Counter{
value: String,
value2:String,
}
定义消息:文章来源:https://www.toymoban.com/news/detail-773848.html
#[derive(Debug, Clone)] //为下方的enum添加特性trait
enum Message {
Showtext,
InputChanged(String),
}
实现一个实例:文章来源地址https://www.toymoban.com/news/detail-773848.html
//sandbox是一个trait
impl Sandbox for Counter {
//impl将sandbox添加给Counter,使Counter具有了sandbox的一些特性
type Message = Message;
fn new() -> Self {
//初始化sandbox,返回初始值
Self {
value: String::new(),
value2:String::new(),
}
}
fn title(&self) -> String {
//返回sandbox的标题
String::from("iced_UI")
}
fn update(&mut self, message: Message) {
//此处书写更新逻辑程序,所有UI交互会在这里处理
到了这里,关于Rust UI开发(一):使用iced构建UI时,如何在界面显示中文字符的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!