哈哈哈哈哈操欧洲电影,久草网在线,亚洲久久熟女熟妇视频,麻豆精品色,久久福利在线视频,日韩中文字幕的,淫乱毛视频一区,亚洲成人一二三,中文人妻日韩精品电影

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

Rust UI框架:Slint UI簡(jiǎn)單入門

jf_wN0SrCdH ? 來源:Rust語言中文社區(qū) ? 2023-05-12 16:03 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

Slint 1.0 已發(fā)布,標(biāo)志著項(xiàng)目已順利從開發(fā)階段“畢業(yè)”,可正式用于生產(chǎn)環(huán)境。

Slint 可用于為各種操作系統(tǒng)處理器架構(gòu)開發(fā) UI,包括 Linux、macOS、Windows、WebAssembly、Blackberry QNX 和裸機(jī)。它允許 JavaScript 開發(fā)人員為嵌入式和桌面應(yīng)用程序創(chuàng)建原生用戶界面。

Slint UI 介紹

Slint 曾經(jīng)被稱為 SixtyFPS,特點(diǎn)是既快又小,是一個(gè) Rust 編寫的綜合性 UI 工具包,用于為桌面和嵌入式設(shè)備構(gòu)建原生用戶界面。其開發(fā)團(tuán)隊(duì)希望將 Slint 打造成下一代 GUI 工具包,因此從頭開始構(gòu)建項(xiàng)目時(shí)就考慮了可擴(kuò)展性、包容性、工具性和跨平臺(tái)兼容性。

  • 流暢:平滑,觸摸友好的用戶接口

  • 跨平臺(tái):目標(biāo)平臺(tái)包括嵌入式設(shè)備和桌面應(yīng)用軟件(手機(jī)和網(wǎng)頁)

  • 多語言:可以使用自己擅長(zhǎng)的語言API(C++,Rust,JavaScript)

  • 快速設(shè)計(jì):適時(shí)預(yù)覽快速迭代

多語言支持的描述,參考官方原文:

We choose to first support this set of languages because it is the implementation language, another low level language, and a dynamic language. We believe that it will be easy to extend the integration into more programming languages later.

Slint 的定位是一個(gè)支持多語言、適配任意顯示屏、且高效流暢的用戶圖形接口工具包。設(shè)計(jì)目標(biāo)包括:

  • 可擴(kuò)展:在連接到設(shè)備的任何屏幕上運(yùn)行,從臺(tái)式計(jì)算機(jī)到低功耗嵌入式設(shè)備

  • 輕量級(jí):能夠在幾百KB內(nèi)存的場(chǎng)景中運(yùn)行,并且需要很少的處理能力。

  • 原生支持:Slint 支持多種目標(biāo)平臺(tái),從嵌入式設(shè)備到桌面應(yīng)用,包括移動(dòng)設(shè)備和 Web。

開發(fā)團(tuán)隊(duì)表示,使用 Slint 構(gòu)建的圖形應(yīng)用程序可以在內(nèi)存小于 300 kB 的系統(tǒng)上運(yùn)行,例如包含 264kB RAM 和 ARM Cortex-M0+ 處理器的 Raspberry Pi Pico。因此,Slint 非常適合為嵌入式設(shè)備應(yīng)用程序開發(fā) UI。

e32d15be-f09a-11ed-90ce-dac502259ad0.png

Slint 使用了聲明式編程來簡(jiǎn)化 UI 的開發(fā),優(yōu)化應(yīng)用程序開發(fā)和性能的方法是:

  • 用聲明式語言來描述 UI,使用的語法提供了一種廣泛的方式來描述各種圖形元素,同時(shí)易于閱讀、編寫和學(xué)習(xí)

  • Slint 編譯器對(duì)描述 UI 的代碼進(jìn)行優(yōu)化并翻譯成原生代碼

  • 采用任何語言編寫的業(yè)務(wù)邏輯,可通過使用 Slint 提供的特定于語言的 API 與 UI 連接

整體架構(gòu)

e353995a-f09a-11ed-90ce-dac502259ad0.png

控件支持

e36e1190-f09a-11ed-90ce-dac502259ad0.jpg

示例:

  • 不同平臺(tái)的原生桌面小部件(Windows、macOS、Linux)

e3887ed6-f09a-11ed-90ce-dac502259ad0.png

e39e3d66-f09a-11ed-90ce-dac502259ad0.png

e3b4ba96-f09a-11ed-90ce-dac502259ad0.png

  • WebAssembly

e3c7403a-f09a-11ed-90ce-dac502259ad0.png

Slint 完全采用 Rust 實(shí)現(xiàn),同時(shí)支持不同的編程語言,目前為 C++、JavaScript 和 Rust 提供了 API。

詳情查看發(fā)布公告:https://slint-ui.com/blog/announcing-slint-1.0.html

MCU支持

slint-ui 是嵌入式開發(fā)的福音,基于 Rust ,使用了聲明式編程來簡(jiǎn)化 UI 的開發(fā),從此再也不用忍受 lvgl/minigui 之類各種各樣的一大票用 c 搞出來的雜七雜八蹩腳又折磨人的 UI 框架(c 框架心智負(fù)擔(dān)太重,很難做到界面與邏輯分離,一旦需求變動(dòng)幾乎就是災(zāi)難)。也許有人會(huì)問為什么不用 QT?QT 太龐大,不適合沒有操作系統(tǒng)的單片機(jī),再者QT For MCU是商業(yè)軟件不開源,slint-ui 支持 GPLv3 許可證(采用GPL協(xié)議,總感覺有點(diǎn)怪怪的,不知道后續(xù)是否會(huì)步QT后塵全面商用收費(fèi))

關(guān)于移植到 MCU 相關(guān)的信息可以看一下官方文章及項(xiàng)目例程:

  1. Slint::mcu - Rust:https://slint-ui.com/releases/0.3.0/docs/rust/slint/docs/mcu/index.html

  2. Porting the Slint UI Toolkit to a Microcontroller with 264K RAM — Slint Blog:https://slint-ui.com/blog/porting-slint-to-microcontrollers.html

  3. Slint-mcu-rust-template.git:https://github.com/slint-ui/slint-mcu-rust-template.git

界面展示:
打印機(jī):【查看在線交互演示】:https://slint-ui.com/releases/0.3.0/demos/printerdemo

e3ed93b6-f09a-11ed-90ce-dac502259ad0.png

Rust Slint 簡(jiǎn)單入門

1. slint 界面代碼嵌入在 Rust 中

新建項(xiàng)目

cargo new rust-ui

添加庫 TOML

[dependencies]
slint = "1.0.0"

main.rs中添加代碼:

fn main() {
    // 運(yùn)行slintUI窗體
    MainWindow::new().run();
}
// slint宏,創(chuàng)建 UI
slint::slint!{
    export component MainWindow inherits Window {
        title: "Main Window";
        width: 600px;
        height: 500px;
        // 定義一個(gè) Text 組件
        Text{
            text: "Hello, world";
            color:blue;
        }
    }
}

上述是將界面 slint 代碼嵌入在 rust 同一個(gè)文件中,slint 聲明式編程來簡(jiǎn)化 UI 的開發(fā),有 Flutter、Compose 以及其他前端開發(fā)經(jīng)驗(yàn)同學(xué)很容易上手。更多組件的使用的請(qǐng)參考開發(fā)文檔和 Demo示例

2、界面 slint 文件與 Rust 代碼分開

cargo.toml 添加

[build-dependencies]
slint-build = "1.0.0"

添加界面文件,新建 ui/main.slint 文件

import {GroupBox, LineEdit, Button} from "std-widgets.slint";

export component MainWindow inherits Window {
    title: "Main Window";
    width: 600px;
    height: 500px;

    VerticalLayout { 
        alignment:start;
        padding-left: 25px;
        padding-right: 25px;

        Text { 
            font-size: 27px;
            font-weight: 700;
            color: #6776FF;  
         }

        GroupBox{
            title:"lineEdit";
            LineEdit {
                placeholder-text: "enter text";
            }
        }

        Button {
            text: "Click Me";
            clicked => { self.text = "Clicked"; }
        }

    }
}

添加 build.rs 文件

fn main() {
    slint_build::compile("ui/main.slint").unwrap();
}

main.rs 主文件

slint::include_modules!();

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

建立好的項(xiàng)目文件結(jié)構(gòu)如下:

e405cb0c-f09a-11ed-90ce-dac502259ad0.png

執(zhí)行命令:cargo run,運(yùn)行效果如下圖,以上所有程序開發(fā)均在vs code下完成(依賴slint官方插件)

注:VSCode插件:slint 語法高亮并可以進(jìn)行界面預(yù)覽 https://marketplace.visualstudio.com/items?itemName=Slint.slint

e41a8d08-f09a-11ed-90ce-dac502259ad0.png

總結(jié)

Slint 是一個(gè) Rust 編寫的綜合性 UI 工具包,定義和提供一系列方便構(gòu)建 UI 的組件,使用了聲明式編程來簡(jiǎn)化 UI 的開發(fā),可用于為桌面和嵌入式設(shè)備構(gòu)建原生用戶界面。使用 Slint 構(gòu)建的圖形應(yīng)用程序可以在內(nèi)存小于 300 kB 的系統(tǒng)上運(yùn)行,實(shí)事求是的講,內(nèi)存較大的嵌入式設(shè)備上 Android 更占優(yōu)勢(shì),但是低內(nèi)存的嵌入式設(shè)備(比如單片機(jī))上 Slint 有很大機(jī)會(huì),總之,Slint 非常適合為嵌入式設(shè)備應(yīng)用程序開發(fā) UI

審核編輯 :李倩


聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 框架
    +關(guān)注

    關(guān)注

    0

    文章

    404

    瀏覽量

    18490
  • 嵌入式設(shè)備
    +關(guān)注

    關(guān)注

    0

    文章

    125

    瀏覽量

    17742
  • GUI
    GUI
    +關(guān)注

    關(guān)注

    3

    文章

    699

    瀏覽量

    43851

原文標(biāo)題:Rust UI 框架:Slint UI 簡(jiǎn)單入門

文章出處:【微信號(hào):Rust語言中文社區(qū),微信公眾號(hào):Rust語言中文社區(qū)】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    Trae AI+AirUI:快速實(shí)現(xiàn)一個(gè)嵌入式UI界面

    傳統(tǒng)嵌入式UI開發(fā)流程繁瑣,需兼顧硬件適配與交互邏輯;AI在網(wǎng)頁、App界面生成方面已較為成熟,但在嵌入式硬件場(chǎng)景中的實(shí)用性,仍需實(shí)際測(cè)試驗(yàn)證。 AirUI框架封裝了常用組件、事件管理等功能,提供
    的頭像 發(fā)表于 04-16 13:10 ?115次閱讀
    Trae AI+AirUI:快速實(shí)現(xiàn)一個(gè)嵌入式<b class='flag-5'>UI</b>界面

    比亞迪智能座艙UI設(shè)計(jì)大賽優(yōu)秀作品名單公示

    比亞迪智能座艙UI設(shè)計(jì)大賽,由比亞迪攜手國內(nèi)頂尖專業(yè)院校共同發(fā)起,以「情緒價(jià)值」為命題核心,面向全球設(shè)計(jì)學(xué)子發(fā)出邀約,共探有關(guān)靈感、情感、美感、動(dòng)感與質(zhì)感的多元表達(dá)。近日,大賽組委會(huì)組織召開了作品終審會(huì),對(duì)入圍的30強(qiáng)作品進(jìn)行了集中評(píng)議。
    的頭像 發(fā)表于 04-11 17:06 ?1900次閱讀

    Enpirion EP5348UI 400mA同步DC/DC轉(zhuǎn)換器模塊評(píng)估板使用指南

    Enpirion EP5348UI 400mA同步DC/DC轉(zhuǎn)換器模塊評(píng)估板使用指南 一、引言 各位電子工程師們,今天我們來聊聊Altera Enpirion的一款強(qiáng)大產(chǎn)品——EP5348UI
    的頭像 發(fā)表于 03-30 14:50 ?169次閱讀

    基于i.MX RT106V跨界MCU的智能語音UI邊緣就緒解決方案

    基于i.MX RT106V跨界MCU的智能語音UI邊緣就緒解決方案 在當(dāng)今智能化的時(shí)代,智能語音交互技術(shù)在工業(yè)和物聯(lián)網(wǎng)領(lǐng)域的應(yīng)用越來越廣泛。NXP推出的基于i.MX RT106V跨界MCU的智能語音
    的頭像 發(fā)表于 12-24 17:15 ?753次閱讀

    RUI Builder 圖形化UI設(shè)計(jì)工具

    RUI Builder 圖形化UI設(shè)計(jì)工具 該軟件為圖形化UI設(shè)計(jì)軟件,搭配瑞佑圖形處理器,輕松設(shè)計(jì)UI界面!主要特色功能: 在PC上直接設(shè)計(jì)界面,再生成UI渲染源碼(.c),程序中
    發(fā)表于 12-12 20:14

    分享---儲(chǔ)能UI界面能量流動(dòng)動(dòng)畫實(shí)現(xiàn)方法

    本文分享 工商業(yè)儲(chǔ)能設(shè)備的UI界面中如何實(shí)現(xiàn) 能量流動(dòng)的動(dòng)畫效果。 本例子效果 基于拓普微工業(yè)級(jí) 7寸屏電容串口屏(HMT070ETA-D型號(hào))實(shí)現(xiàn): 第1步:建立工程和頁面 使用SGTools新建
    發(fā)表于 09-02 18:22

    分享---簡(jiǎn)單快速實(shí)現(xiàn)烘烤設(shè)備UI界面的方法

    本文分享下,如何簡(jiǎn)單快速的設(shè)計(jì)出工業(yè)烘烤設(shè)備的UI界面方法, 借助 \"墨刀\" 界面原型設(shè)計(jì)工具,設(shè)計(jì)烘烤機(jī)主界面圖片。 使用拓普微 SGTools開發(fā)工具,建立工程和頁面
    發(fā)表于 08-26 11:58

    HarmonyOS AI輔助編程工具(CodeGenie)UI生成

    UI Generator基于BitFun Platform AI能力平臺(tái),用于快速生成可編譯、可運(yùn)行的HarmonyOS UI工程,支持基于已有UI布局文件(XML),快速生成
    發(fā)表于 07-10 11:51

    【 HarmonyOS 5 入門系列 】鴻蒙HarmonyOS示例項(xiàng)目講解

    【 HarmonyOS 5 入門系列 】鴻蒙HarmonyOS示例項(xiàng)目講解 ##鴻蒙開發(fā)能力 ##HarmonyOS SDK應(yīng)用服務(wù)##鴻蒙金融類應(yīng)用 (金融理財(cái)# 一、前言:移動(dòng)開發(fā)聲明式 UI
    的頭像 發(fā)表于 07-07 11:57 ?1187次閱讀
    【 HarmonyOS 5 <b class='flag-5'>入門</b>系列 】鴻蒙HarmonyOS示例項(xiàng)目講解

    請(qǐng)問如何通過OpenVINO?加速啟用穩(wěn)定的擴(kuò)散 Web UI?

    無法運(yùn)行具有OpenVINO?加速的穩(wěn)定擴(kuò)散 Web UI。
    發(fā)表于 06-24 06:48

    ArkUI介紹

    ArkUI(方舟UI框架)為應(yīng)用的UI開發(fā)提供了完整的基礎(chǔ)設(shè)施,包括簡(jiǎn)潔的UI語法、豐富的UI功能(組件、布局、動(dòng)畫以及交互事件),以及實(shí)時(shí)
    發(fā)表于 06-24 06:41

    UI開發(fā)概述

    使用UI開發(fā)框架開發(fā)應(yīng)用時(shí),主要涉及如下開發(fā)過程。開發(fā)者可以先通過第一個(gè)入門實(shí)例了解整個(gè)應(yīng)用的UI開發(fā)過程。 任務(wù)簡(jiǎn)介相關(guān)指導(dǎo)學(xué)習(xí)ArkTS介紹了ArkTS的基本語法、狀態(tài)管理和渲
    發(fā)表于 06-24 06:36

    HarmonyOS NEXT應(yīng)用元服務(wù)布局優(yōu)化ArkUI框架執(zhí)行流程

    一、 ArkUI框架執(zhí)行流程 在使用ArkUI開發(fā)中,我們通過布局組件和基礎(chǔ)組件進(jìn)行界面描述,這些描述會(huì)呈現(xiàn)出一個(gè)組件樹的結(jié)構(gòu),基礎(chǔ)組件在其中為葉子結(jié)點(diǎn),布局組件則是中間節(jié)點(diǎn),可以把這棵樹稱之為
    發(fā)表于 06-23 09:41

    使用 ai cude 里面自帶的案例訓(xùn)練UI顯示異常的原因?怎么解決?

    案例的配置是默認(rèn)的,顯示訓(xùn)練ui更改顯示異常
    發(fā)表于 06-23 06:21

    UIAbility組件與UI的數(shù)據(jù)同步介紹

    UIAbility組件與UI的數(shù)據(jù)同步 基于當(dāng)前的應(yīng)用模型,可以通過以下幾種方式來實(shí)現(xiàn)UIAbility組件與UI之間的數(shù)據(jù)同步。 使用EventHub進(jìn)行數(shù)據(jù)通信:在基類Context中提供了
    發(fā)表于 05-16 06:10
    长海县| 大竹县| 静安区| 方城县| 平原县| 同江市| 巴里| 延长县| 玉树县| 德阳市| 栾川县| 伊金霍洛旗| 白朗县| 随州市| 大庆市| 卓尼县| 郑州市| 偏关县| 金沙县| 永新县| 祁连县| 井冈山市| 五台县| 惠来县| 彰武县| 彭山县| 阿拉善右旗| 巴里| 台中县| 进贤县| 靖边县| 东宁县| 常宁市| 榆中县| 介休市| 成都市| 昭苏县| 海伦市| 焦作市| 纳雍县| 庆城县|