百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术文章 > 正文

开源项目:声明式 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的状态机的实现。中小型嵌入式程序说白了就是由各种状态机组成,因此掌握了如何构建...

智能硬件产品/项目研发流程框架及交付件模板V5.0

52页流程信息化总体规划项目,制造与供应链高阶流程框架L1-L4

分享职场干货,提升能力!为职场精英打造个人知识体系,升职加薪!流程信息化总体规划项目如何拿到分享的源文件:请您关注、转发,然后私信本头条号“文米”2个字,按照操作流程,专人负责发送源文件给您。...

这52张PPT把期货基础、研究框架和下半年策略都说透了

...

研报学习:稀土产业链研究框架(国信证券)

【推荐】AI大模型研究框架|附下载

锋行链盟推荐阅读非会员仅试读以上内容公众号:锋行链盟后台回复【9033】下载报告回复【5】领取人工智能大模型报告合集|3200份...

四川石窟寺“1+4”保护研究框架协议签订

来源:环球网【环球网文化综合报道】近日,巴中石窟保护利用项目专家论证会召开。四川石窟寺保护研究院、乐山大佛石窟研究院、安岳石窟研究院、广元石窟研究所、巴中石窟研究中心四方共同签订了《四川石窟寺“1+...

中考数学知识框架(中考数学知识点细目表)

如何使用知识框架进行学习和发展 | 2023年7月15日

今天想聊一聊知识框架这回事。在《费曼学习法》一书中看到了这样一个小故事:"从中学开始,小唐就拥有自己的学习小组,每个学习小组都代表了不同的兴趣和方向。他与不同的老师和同学在小组中做针对性的讨论...

取消回复欢迎 发表评论: