【跟小嘉学 Rust 编程】三十、Rust 使用 Slint UI

这篇具有很好参考价值的文章主要介绍了【跟小嘉学 Rust 编程】三十、Rust 使用 Slint UI。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

系列文章目录

【跟小嘉学 Rust 编程】一、Rust 编程基础
【跟小嘉学 Rust 编程】二、Rust 包管理工具使用
【跟小嘉学 Rust 编程】三、Rust 的基本程序概念
【跟小嘉学 Rust 编程】四、理解 Rust 的所有权概念
【跟小嘉学 Rust 编程】五、使用结构体关联结构化数据
【跟小嘉学 Rust 编程】六、枚举和模式匹配
【跟小嘉学 Rust 编程】七、使用包(Packages)、单元包(Crates)和模块(Module)来管理项目
【跟小嘉学 Rust 编程】八、常见的集合
【跟小嘉学 Rust 编程】九、错误处理(Error Handling)
【跟小嘉学 Rust 编程】十一、编写自动化测试
【跟小嘉学 Rust 编程】十二、构建一个命令行程序
【跟小嘉学 Rust 编程】十三、函数式语言特性:迭代器和闭包
【跟小嘉学 Rust 编程】十四、关于 Cargo 和 Crates.io
【跟小嘉学 Rust 编程】十五、智能指针(Smart Point)
【跟小嘉学 Rust 编程】十六、无畏并发(Fearless Concurrency)
【跟小嘉学 Rust 编程】十七、面向对象语言特性
【跟小嘉学 Rust 编程】十八、模式匹配(Patterns and Matching)
【跟小嘉学 Rust 编程】十九、高级特性
【跟小嘉学 Rust 编程】二十、进阶扩展
【跟小嘉学 Rust 编程】二十一、网络编程
【跟小嘉学 Rust 编程】二十三、Cargo 使用指南
【跟小嘉学 Rust 编程】二十四、内联汇编(inline assembly)
【跟小嘉学 Rust 编程】二十五、Rust命令行参数解析库(clap)
【跟小嘉学 Rust 编程】二十六、Rust的序列化解决方案(Serde)
【跟小嘉学 Rust 编程】二十七、Rust 异步编程(Asynchronous Programming)
【跟小嘉学 Rust 编程】二十八、Rust中的日期与时间
【跟小嘉学 Rust 编程】二十九、Rust 中的零拷贝序列化解决方案(rkyv)
【跟小嘉学 Rust 编程】三十、Rust 使用 Slint UI

前言

本章节 Slint UI 介绍,这是一个支持多语言(Rust/CPP/javascript)的、跨平台的、简单易用、高效执行的 UI库,Slint 是一个类似 QML 的标记语言,经过编译器 slinit compile 可完整的转换成CPP或者 Rust,其开发方式类似与QML+CPP。

主要教材参考 《The Rust Programming Language》
主要教材参考 《Rust For Rustaceans》
主要教材参考 《The Rustonomicon》
主要教材参考 《Rust 高级编程》
主要教材参考 《Cargo 指南》
主要教材参考 《Rust 异步编程》


一、 Slint UI 介绍

1.1、 Slint UI 介绍

Slint UI 介绍,这是一个支持多语言(Rust/CPP/javascript)的、跨平台的、简单易用、高效执行的 UI库,Slint 是一个类似 QML 的标记语言,经过编译器 slinit compile 可完整的转换成CPP或者 Rust,其开发方式类似与QML+CPP。

1.2、Slint 优点

  • 流畅:平滑,触摸友好的用户接口
  • 跨平台:目标平台包括嵌入式设备和桌面应用软件(手机和网页)
  • 多语言:可以使用自己擅长的语言API(C++,Rust,JavaScript)
  • 快速设计:适时预览快速迭代

1.3、目标

slint 定位是一个可多语言、可任意显示屏适配的高效流畅的用户图形接口工具包。设计目标包括如下几点

  • 简便:编码或设计人员能有成就感并能享受开发和设计的过程。APIs不管在哪种语言下都保证一致性、简单易用、符合直观感觉。文档介绍API时应注重观念的传授及api如何使用
  • 轻量:能够适用于几百K的内存及低功耗设备。
  • 本地化:slint支持多种多样的目标平台,从嵌入式设备到桌面应用包括手机和网页。用户和开发者都应感受不到与当前使用平台的差异。不管是外观还是主观感觉还是经验都应符合用户对本地应用的期望

1.4、许可证

需要注意它采用的 GPLv3 以及商业许可证。

二、快速开始

2.1、创建工程

cargo new slint_learn

2.2、添加依赖

cargo add slint

2.3、添加代码

slint::slint!{
    export component MainWindow inherits Window {
        width: 300px;
        height: 300px;
        title: "第一个slint程序";
        Text {
            text: "hello world";
            color: green;
        }
    }
}

fn main() {
    MainWindow::new().unwrap().run().unwrap();
}

运行结果
【跟小嘉学 Rust 编程】三十、Rust 使用 Slint UI,跟小嘉学 Rust 编程,rust,ui,开发语言

三、Slint和 Rust 分离

3.1、添加依赖

cargo add slint-build --build

3.2、添加 hello.slint

在src 目录下创建一个 components/hello.slint 文件文章来源地址https://www.toymoban.com/news/detail-757718.html

export component MainWindow inherits Window {
    width: 300px;
    height: 300px;
    title: "第一个slint程序";
    Text {
        text: "hello world";
        color: green;
    }
}

3.3、创建 build.rs

fn main(){
    slint_build::compile("src/components/hello.slint").unwrap();
}

3.4、main.rs

slint::include_modules!();

fn main() {
    MainWindow::new().unwrap().run().unwrap();
}

总结

到了这里,关于【跟小嘉学 Rust 编程】三十、Rust 使用 Slint UI的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Rust UI开发(一):使用iced构建UI时,如何在界面显示中文字符

    注:此文适合于对rust有一些了解的朋友 iced是一个跨平台的GUI库,用于为rust语言程序构建UI界面。   iced的基本逻辑是: UI交互产生消息message,message传递给后台的update,在这个函数中编写逻辑,然后通过View函数更新UI。 Take the result of our view logic and layout its widgets. 获取视图逻

    2024年02月03日
    浏览(42)
  • 【跟小嘉学 Rust 编程】三、Rust 的基本程序概念

    【跟小嘉学 Rust 编程】一、Rust 编程基础 【跟小嘉学 Rust 编程】二、Rust 包管理工具使用 【跟小嘉学 Rust 编程】三、Rust 的基本程序概念 本章节涵盖几乎所有编程语言会出现的概念以及他们在 Rust之中的工作原理,这不是 Rust 独有的,但我们将在 Rust 上下文中讨论他们,并且

    2024年02月10日
    浏览(29)
  • 【跟小嘉学 Rust 编程】四、理解 Rust 的所有权概念

    【跟小嘉学 Rust 编程】一、Rust 编程基础 【跟小嘉学 Rust 编程】二、Rust 包管理工具使用 【跟小嘉学 Rust 编程】三、Rust 的基本程序概念 【跟小嘉学 Rust 编程】四、理解 Rust 的所有权概念 本章节将讲解 Rust 独有的概念(所有权)。所有权是 Rust 最独特的特性,它使得 Rust 能够

    2024年02月10日
    浏览(33)
  • 【跟小嘉学 Rust 编程】二十一、网络编程

    【跟小嘉学 Rust 编程】一、Rust 编程基础 【跟小嘉学 Rust 编程】二、Rust 包管理工具使用 【跟小嘉学 Rust 编程】三、Rust 的基本程序概念 【跟小嘉学 Rust 编程】四、理解 Rust 的所有权概念 【跟小嘉学 Rust 编程】五、使用结构体关联结构化数据 【跟小嘉学 Rust 编程】六、枚举

    2024年02月10日
    浏览(29)
  • 【跟小嘉学 Rust 编程】二十、进阶扩展

    【跟小嘉学 Rust 编程】一、Rust 编程基础 【跟小嘉学 Rust 编程】二、Rust 包管理工具使用 【跟小嘉学 Rust 编程】三、Rust 的基本程序概念 【跟小嘉学 Rust 编程】四、理解 Rust 的所有权概念 【跟小嘉学 Rust 编程】五、使用结构体关联结构化数据 【跟小嘉学 Rust 编程】六、枚举

    2024年02月10日
    浏览(29)
  • 【跟小嘉学 Rust 编程】十五、智能指针

    【跟小嘉学 Rust 编程】一、Rust 编程基础 【跟小嘉学 Rust 编程】二、Rust 包管理工具使用 【跟小嘉学 Rust 编程】三、Rust 的基本程序概念 【跟小嘉学 Rust 编程】四、理解 Rust 的所有权概念 【跟小嘉学 Rust 编程】五、使用结构体关联结构化数据 【跟小嘉学 Rust 编程】六、枚举

    2024年02月11日
    浏览(38)
  • 【跟小嘉学 Rust 编程】十九、高级特性

    【跟小嘉学 Rust 编程】一、Rust 编程基础 【跟小嘉学 Rust 编程】二、Rust 包管理工具使用 【跟小嘉学 Rust 编程】三、Rust 的基本程序概念 【跟小嘉学 Rust 编程】四、理解 Rust 的所有权概念 【跟小嘉学 Rust 编程】五、使用结构体关联结构化数据 【跟小嘉学 Rust 编程】六、枚举

    2024年02月10日
    浏览(30)
  • 【跟小嘉学 Rust 编程】十七、面向对象语言特性

    【跟小嘉学 Rust 编程】一、Rust 编程基础 【跟小嘉学 Rust 编程】二、Rust 包管理工具使用 【跟小嘉学 Rust 编程】三、Rust 的基本程序概念 【跟小嘉学 Rust 编程】四、理解 Rust 的所有权概念 【跟小嘉学 Rust 编程】五、使用结构体关联结构化数据 【跟小嘉学 Rust 编程】六、枚举

    2024年02月10日
    浏览(75)
  • 【跟小嘉学 Rust 编程】二十二、常用 API

    【跟小嘉学 Rust 编程】一、Rust 编程基础 【跟小嘉学 Rust 编程】二、Rust 包管理工具使用 【跟小嘉学 Rust 编程】三、Rust 的基本程序概念 【跟小嘉学 Rust 编程】四、理解 Rust 的所有权概念 【跟小嘉学 Rust 编程】五、使用结构体关联结构化数据 【跟小嘉学 Rust 编程】六、枚举

    2024年02月10日
    浏览(40)
  • 【跟小嘉学 Rust 编程】六、枚举和模式匹配

    【跟小嘉学 Rust 编程】一、Rust 编程基础 【跟小嘉学 Rust 编程】二、Rust 包管理工具使用 【跟小嘉学 Rust 编程】三、Rust 的基本程序概念 【跟小嘉学 Rust 编程】四、理解 Rust 的所有权概念 【跟小嘉学 Rust 编程】五、使用结构体关联结构化数据 【跟小嘉学 Rust 编程】六、枚举

    2024年02月13日
    浏览(29)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包