开源项目:声明式 GUI 开发框架Slint
ccwgpt 2024-10-24 09:05 28 浏览 0 评论
Slint介绍
Slint是一个声明性GUI工具包,用于为用Rust、C++或JavaScript编写的桌面和嵌入式应用程序构建本机用户界面。Slint这个名字源于我们的设计目标:
- 可扩展:Slint应支持响应式UI设计,允许跨操作系统和处理器架构跨平台使用,并支持多种编程语言。
- 轻量级:Slint在内存和处理能力方面需要最少的资源,同时在任何设备上提供流畅的、类似智能手机的用户体验。
- 直观:设计师和开发人员应该在享受GUI设计和开发过程的同时感到高效。设计创建工具对设计师来说应该是直观的。同样,对于开发人员来说,无论他们选择哪种编程语言,API都应该是一致且易于使用的。
- 原生:使用Slint构建的GUI应符合最终用户对原生应用程序的期望,无论平台如何——桌面、移动、网络或嵌入式系统。UI设计应编译为机器代码,并提供只有本机应用程序才能提供的灵活性:访问完整的操作系统API,利用所有CPU和GPU内核,连接到任何外围设备。
Hello,world
UI 是在一种领域特定语言中定义的,它是声明性的、易于使用、直观的,并提供了一种强大的描述图形元素、它们的位置、层次结构、属性绑定和数据在不同状态下流动的方式。
这是必要的“Hello World”示例:
export component HelloWorld inherits Window {
width: 400px;
height: 400px;
Text {
y: parent.width / 2;
x: parent.x + 200px;
text: "Hello, world";
color: blue;
}
}
编译器
.slint 文件是预先编译的。.slint 中的表达式是纯函数,编译器可以进行优化。例如,编译器可以选择“内联”属性并删除常量或不变的属性。在未来,我们希望通过预处理图像和文本来改善低端设备上的渲染时间。编译器可以确定 Text 或 Image 元素始终位于相同位置的另一个 Image 上方。因此,两个元素可以预先渲染为单个元素,从而减少渲染时间。
编译器使用典型的编译器阶段,包括词法分析、语法分析、优化和代码生成。它为目标语言提供不同的代码生成后端。C++ 代码生成器生成 C++ 头文件,Rust 生成器生成 Rust 代码等。也包括动态语言的解释器。
运行时
运行时库包括支持在 .slint 语言中声明的属性的引擎。组件及其元素、项和属性被布局在单个内存区域中,以减少内存分配。
在编译时,可配置渲染后端和样式:
femtovg 渲染器使用 OpenGL ES 2.0 进行渲染。
skia 渲染器使用 Skia 进行渲染。
软件渲染器使用 CPU,没有其他依赖项。
注意:当系统安装了 Qt 时,本机样式使用 Qt 的 QStyle 实现本机外观小部件。
项目信息
项目地址:https://github.com/slint-ui/slint
我最近读的好书推荐
生产环境经常遇到各种网络治理,路由控制,利用linux最新的内核可以通过BPF技术实现动态即时编译在用户态修改内核网络转发策略就是BPF技术的一种用途
个人近期动态
我最近持续在写python相关的技术专栏《python tricks》系统性介绍python的各种用法的小技巧和注意事项。
另外一本专栏是讲解python asyncio技术的专栏,持续介绍高性能异步网络编程的python玩法
相关推荐
- 质量持续改善流程,34页产品研发质量管理流程框架及详细方案
-
分享职场干货,提升能力!为职场精英打造个人知识体系,升职加薪!产品研发质量管理流程框架及详细方案如何拿到分享的源文件:请您关注、转发,然后私信本头条号“文米”2个字,按照操作流程,专人负责发送源文件给...
- [汇川PLC] 汇川IFA程序框架01-新建一个项目
-
汇川iFA对标西门子,新选择!汇川刚刚发布的iFA平台(2月14日),一眼望去就是对标西门子的全集成自动化平台博途(TIAPortal)。这个平台可以在一个平台上对PLC、变频器、伺服、工业机器人、...
- IBM EPF企业过程框架(ibm erp)
-
前言本人野路子出身,在过往的经历中都是自己摸索着学习,并没有建立体系化的能力框架,也因此往往过多关注具体的技术细节,缺乏体系化方法论支撑。之前也曾尝试去学习“金字塔原理”、“平衡计分卡模型”、“TOG...
- 嵌入式MCU程序框架设计:三种经典模式,你该选哪种?
-
在嵌入式开发中,程序框架设计是决定系统性能、可维护性和开发效率的关键。今天,我们将介绍三种经典的嵌入式MCU程序框架设计模式:顺序执行的前后台系统、时间片轮询系统和多任务操作系统(RTOS)。每种模式...
- 资深工程师分享:PLC程序设计思路分享(二)
-
在论坛里面有个学员问了一个程序设计的问题,问题如下所示:我现在有个程序没有想到办法,就是有五个气缸!每次随机选择,按先选先动的顺序编程!应该怎么做!能不能写个程序看看?s7-1200的plc.。例如选...
- 135页企业流程框架——美的战略经营部咨询方法论(可提供PDF)
-
如果觉得本文不错,欢迎大家转发、点赞和评论,您的鼓励是我持续更新的不竭动力!如何拿到分享的源文件:请您关注本头条号,然后私信本头条号“俊知道”3个字,按照操作流程,专人负责发送源文件给您。...
- 单片机最好用的程序框架,莫过于状态机了
-
ZorbFramework是一个基于面向对象的思想来搭建一个轻量级的嵌入式框架。本次分享的是ZorbFramework的状态机的实现。中小型嵌入式程序说白了就是由各种状态机组成,因此掌握了如何构建...
- 52页流程信息化总体规划项目,制造与供应链高阶流程框架L1-L4
-
分享职场干货,提升能力!为职场精英打造个人知识体系,升职加薪!流程信息化总体规划项目如何拿到分享的源文件:请您关注、转发,然后私信本头条号“文米”2个字,按照操作流程,专人负责发送源文件给您。...
- 【推荐】AI大模型研究框架|附下载
-
锋行链盟推荐阅读非会员仅试读以上内容公众号:锋行链盟后台回复【9033】下载报告回复【5】领取人工智能大模型报告合集|3200份...
- 四川石窟寺“1+4”保护研究框架协议签订
-
来源:环球网【环球网文化综合报道】近日,巴中石窟保护利用项目专家论证会召开。四川石窟寺保护研究院、乐山大佛石窟研究院、安岳石窟研究院、广元石窟研究所、巴中石窟研究中心四方共同签订了《四川石窟寺“1+...
- 如何使用知识框架进行学习和发展 | 2023年7月15日
-
今天想聊一聊知识框架这回事。在《费曼学习法》一书中看到了这样一个小故事:"从中学开始,小唐就拥有自己的学习小组,每个学习小组都代表了不同的兴趣和方向。他与不同的老师和同学在小组中做针对性的讨论...
你 发表评论:
欢迎- 一周热门
- 最近发表
- 标签列表
-
- MVC框架 (46)
- spring框架 (46)
- 框架图 (58)
- bootstrap框架 (43)
- flask框架 (53)
- quartz框架 (51)
- abp框架 (47)
- jpa框架 (47)
- laravel框架 (46)
- express框架 (43)
- springmvc框架 (49)
- 分布式事务框架 (65)
- scrapy框架 (56)
- shiro框架 (61)
- java框架spring (43)
- grpc框架 (55)
- ppt框架 (48)
- 内联框架 (52)
- winform框架 (46)
- gui框架 (44)
- cad怎么画框架 (58)
- ps怎么画框架 (47)
- ssm框架实现登录注册 (49)
- oracle字符串长度 (48)
- oracle提交事务 (47)