色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

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

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

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

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

jf_wN0SrCdH ? 來(lái)源:Rust語(yǔ)言中文社區(qū) ? 2023-05-12 16:03 ? 次閱讀

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

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

Slint UI 介紹

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

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

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

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

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

多語(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è)支持多語(yǔ)言、適配任意顯示屏、且高效流暢的用戶圖形接口工具包。設(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。

開(kāi)發(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)用程序開(kāi)發(fā) UI。

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

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

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

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

  • 采用任何語(yǔ)言編寫(xiě)的業(yè)務(wù)邏輯,可通過(guò)使用 Slint 提供的特定于語(yǔ)言的 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í)支持不同的編程語(yǔ)言,目前為 C++、JavaScript 和 Rust 提供了 API。

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

MCU支持

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

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

新建項(xiàng)目

cargo new rust-ui

添加庫(kù) 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 聲明式編程來(lái)簡(jiǎn)化 UI 的開(kāi)發(fā),有 Flutter、Compose 以及其他前端開(kāi)發(fā)經(jīng)驗(yàn)同學(xué)很容易上手。更多組件的使用的請(qǐng)參考開(kāi)發(fā)文檔和 Demo示例

2、界面 slint 文件與 Rust 代碼分開(kāi)

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)行效果如下圖,以上所有程序開(kāi)發(fā)均在vs code下完成(依賴(lài)slint官方插件)

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

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

總結(jié)

Slint 是一個(gè) Rust 編寫(xiě)的綜合性 UI 工具包,定義和提供一系列方便構(gòu)建 UI 的組件,使用了聲明式編程來(lái)簡(jiǎn)化 UI 的開(kāi)發(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)用程序開(kāi)發(fā) UI

審核編輯 :李倩


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

    關(guān)注

    0

    文章

    403

    瀏覽量

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

    關(guān)注

    0

    文章

    110

    瀏覽量

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

    關(guān)注

    3

    文章

    662

    瀏覽量

    39835

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

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

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    自動(dòng)化創(chuàng)建UI并解析數(shù)據(jù)

    *附件:32960_auto.rar備注:Main.vi是ui自動(dòng)化2.1.vi,配置文件為32960.B.ini。 目前可以實(shí)現(xiàn)根據(jù)配置文件自動(dòng)化創(chuàng)建控件并布局,且可以自動(dòng)解析接收到的數(shù)據(jù)內(nèi)容寫(xiě)入
    發(fā)表于 12-10 08:41

    自動(dòng)化創(chuàng)建UI并解析數(shù)據(jù)

    Labview實(shí)現(xiàn)動(dòng)態(tài)增加控件效果 - *附件:32960_auto.rar 備注:Main.vi是ui自動(dòng)化2.1.vi,配置文件為32960.B.ini。 目前可以實(shí)現(xiàn)根據(jù)配置文件自動(dòng)化創(chuàng)建控件
    發(fā)表于 11-29 11:26

    三星電子為其2023年款智能電視推送One UI更新

    10月14日,據(jù)國(guó)外媒體報(bào)道,三星電子已正式向2023年款的智能電視推送了One UI更新。   此次One UI更新建立在Tizen 8.0操作系統(tǒng)之上,為三星智能電視引入了一系列顯著的改進(jìn)
    的頭像 發(fā)表于 10-15 17:11 ?1177次閱讀

    VA段碼COG液晶屏可個(gè)性化靈活設(shè)計(jì)UI,實(shí)現(xiàn)創(chuàng)意UI的高對(duì)比高亮多色彩炫酷顯示。

    VA段碼COG液晶屏可個(gè)性化靈活設(shè)計(jì)UI,實(shí)現(xiàn)創(chuàng)意UI的高對(duì)比高亮多色彩炫酷顯示。
    的頭像 發(fā)表于 07-11 10:50 ?643次閱讀
    VA段碼COG液晶屏可個(gè)性化靈活設(shè)計(jì)<b class='flag-5'>UI</b>,實(shí)現(xiàn)創(chuàng)意<b class='flag-5'>UI</b>的高對(duì)比高亮多色彩炫酷顯示。

    使用 GPT4V+AI Agent 做自動(dòng) UI 測(cè)試的探索

    一、背景 從 Web 誕生之日起,UI 自動(dòng)化就成了測(cè)試的難點(diǎn),到現(xiàn)在近 30 年,一直沒(méi)有有效的手段解決Web UI測(cè)試的問(wèn)題,盡管發(fā)展了很多的 webdriver 驅(qū)動(dòng),圖片 diff 驅(qū)動(dòng)
    的頭像 發(fā)表于 06-20 15:42 ?532次閱讀
    使用 GPT4V+AI Agent 做自動(dòng) <b class='flag-5'>UI</b> 測(cè)試的探索

    鴻蒙Ability Kit(程序框架服務(wù))【UIAbility組件與UI的數(shù)據(jù)同步】

    基于當(dāng)前的應(yīng)用模型,可以通過(guò)以下幾種方式來(lái)實(shí)現(xiàn)UIAbility組件與UI之間的數(shù)據(jù)同步。
    的頭像 發(fā)表于 06-03 10:26 ?538次閱讀
    鴻蒙Ability Kit(程序<b class='flag-5'>框架</b>服務(wù))【UIAbility組件與<b class='flag-5'>UI</b>的數(shù)據(jù)同步】

    鴻蒙ArkUI:【從代碼到UI顯示的整體渲染流程】

    方舟開(kāi)發(fā)框架(簡(jiǎn)稱(chēng)ArkUI)是鴻蒙開(kāi)發(fā)的UI框架,提供如下兩種開(kāi)發(fā)范式,我們 **只學(xué)聲明式開(kāi)發(fā)范式**
    的頭像 發(fā)表于 05-13 16:06 ?1009次閱讀
    鴻蒙ArkUI:【從代碼到<b class='flag-5'>UI</b>顯示的整體渲染流程】

    鴻蒙OS開(kāi)發(fā)實(shí)戰(zhàn):【自動(dòng)化測(cè)試框架】使用指南

    為支撐HarmonyOS操作系統(tǒng)的自動(dòng)化測(cè)試活動(dòng)開(kāi)展,我們提供了支持JS/TS語(yǔ)言的單元及UI測(cè)試框架,支持開(kāi)發(fā)者針對(duì)應(yīng)用接口進(jìn)行單元測(cè)試,并且可基于UI操作進(jìn)行UI自動(dòng)化腳本的編寫(xiě)。
    的頭像 發(fā)表于 04-08 14:49 ?1517次閱讀
    鴻蒙OS開(kāi)發(fā)實(shí)戰(zhàn):【自動(dòng)化測(cè)試<b class='flag-5'>框架</b>】使用指南

    touchgfx的ui控件非常多的時(shí)候容易死機(jī)是什么原因?qū)е碌模?/a>

    由于項(xiàng)目比較復(fù)雜,ui上控件以及容器比較多,包括文本和動(dòng)態(tài)文本都很多;當(dāng)再增加文本或者增加ui圖片的時(shí)候容易HardFault_Handler程序卡死;目前測(cè)試發(fā)現(xiàn)增加定義 幾個(gè)動(dòng)態(tài)文本 就死機(jī),刪除之后正常;也遇到過(guò)增加一張圖片之后死機(jī),刪除圖片之后就正常;
    發(fā)表于 03-21 06:09

    ocl最大輸出功率和ui有關(guān)系嗎

    在音頻設(shè)備中,OCL(Output Capacitor-Less)電路是一種常見(jiàn)的功率放大電路。它具有結(jié)構(gòu)簡(jiǎn)單、成本低廉、輸出驅(qū)動(dòng)能力強(qiáng)等優(yōu)點(diǎn),因此被廣泛應(yīng)用于音頻放大器設(shè)計(jì)中。而UI參數(shù)指的是
    的頭像 發(fā)表于 03-09 14:25 ?2238次閱讀

    【AWTK開(kāi)源智能串口屏方案】設(shè)計(jì)UI界面并上傳到串口屏

    本篇文章將介紹如何使用AWStudio設(shè)計(jì)串口屏端的UI界面和添加綁定規(guī)則,以及怎么將資源文件上傳到串口屏端。引言:AWTK-HMI是基于AWTK與AWTK-MVVM開(kāi)發(fā)的低代碼智能串口屏方案,本系
    的頭像 發(fā)表于 02-22 08:24 ?779次閱讀
    【AWTK開(kāi)源智能串口屏方案】設(shè)計(jì)<b class='flag-5'>UI</b>界面并上傳到串口屏

    微軟發(fā)布Agent框架UFO,引領(lǐng)UI交互新紀(jì)元

    微軟近日宣布推出全新的Agent框架——UFO(UI-Focused Agent),旨在構(gòu)建更智能、更直觀的用戶界面交互體驗(yàn)。該框架基于OpenAI的GPT-4V圖像識(shí)別模型開(kāi)發(fā),專(zhuān)為Windows操作系統(tǒng)上的應(yīng)用程序設(shè)計(jì),能夠
    的頭像 發(fā)表于 02-19 11:15 ?1264次閱讀

    鴻蒙開(kāi)發(fā)-HarmonyOS UI架構(gòu)

    初步布局Index 當(dāng)我們新建一個(gè)工程之后,首先會(huì)進(jìn)入Index頁(yè)。我們先簡(jiǎn)單的做一個(gè)文章列表的顯示 class Article { title?: string desc?: string
    發(fā)表于 02-16 16:38

    鴻蒙實(shí)戰(zhàn)開(kāi)發(fā)-全局UI方法的功能

    使用全局UI的方法定義日期滑動(dòng)選擇器彈窗并彈出。
    的頭像 發(fā)表于 02-02 17:13 ?648次閱讀
    鴻蒙實(shí)戰(zhàn)開(kāi)發(fā)-全局<b class='flag-5'>UI</b>方法的功能

    HT UI 5.0,前端組件圖撲是認(rèn)真的!

    為順應(yīng)數(shù)字時(shí)代的不斷發(fā)展,圖撲 HT UI 5.0 在原有功能強(qiáng)大的界面組件庫(kù)的基礎(chǔ)上進(jìn)行了全面升級(jí),融入了更先進(jìn)的技術(shù)、創(chuàng)新的設(shè)計(jì)理念以及更加智能的功能。
    的頭像 發(fā)表于 01-30 10:17 ?554次閱讀
    HT <b class='flag-5'>UI</b> 5.0,前端組件圖撲是認(rèn)真的!
    主站蜘蛛池模板: 国产原创中文视频 | 国产97精品久久久天天A片 | 果冻传媒在线观看高清完整免费 | 久久黄色大片 | 午夜视频无码国产在线观看 | 97蜜桃网123.com | 国产香蕉九九久久精品免费 | 湖南电台在线收听 | 色就色 综合偷拍区欧美 | 老女人与小伙子露脸对白 | 亚洲精品拍拍央视网出文 | XXX国产麻豆HD | 回复术士人生重启在线观看 | 年轻的朋友4在线看中文字幕 | 人人插人人射 | 91九色porny蝌蚪| 丰满的女朋友韩国版在线观看 | 桃色窝 | 龙广在线收听 | 菠萝菠萝蜜高清观看在线 | 女子初尝黑人巨嗷嗷叫 | 黄色三级网络 | 97久久超碰中文字幕 | 国产精品第1页在线观看 | 色美妞论坛 | 成人五级毛片免费播放 | 日本高清免费一本视频在线观看 | 好爽别插了无码视频 | 久久久久久久久a免费 | 一区三区在线专区在线 | 中文字幕久久熟女人妻AV免费 | 美女脱了内裤张开腿让男人爽 | 亚洲日本乱码中文论理在线电影 | 98久久人妻无码精品系列蜜桃 | 王晶经典三级 | 久久久久国产一级毛片高清片 | 亚洲AV人无码综合在线观看蜜桃 | 美女张开腿让我了一夜 | 2020精品极品国产色在线 | 国产精品色无码AV在线观看 | 欧美黑人巨大性极品hd欧 |