URL: https://linuxfr.org/users/gof/journaux/slint-un-toolkit-pour-interface-graphiques-natives Title: Slint: Un toolkit pour interface graphiques natives Authors: Gof Date: 2022年03月16日T09:05:49+01:00 License: CC By-SA Tags: slint et publicité Score: 56 Il est temps de vous présenter [Slint](https://slint-ui.com), un toolkit pour faire des interfaces graphiques pour desktop et embarqué. ![Logo de Slint](https://slint-ui.com/logo/slint-logo-full-light.svg) Slint est open source et multi-plateformes. Le projet est développé sur GitHub: https://github.com/slint-ui/slint Le principe est inspiré par QML (puisque j'ai travaillé dans cet écosystème précédemment). Il y a un langage de description d'interface, et la logique se fait dans un autre langage de programmation. Le code `.slint` ressemble à ça: ```c++ HelloWorld := Window { property name: "World"; callback button-clicked(); VerticalLayout { Text { text: "Hello, " + name; } Button { text: "Click me"; clicked => { button-clicked(); } } } } ``` Le principe est que nous avons un compilateur qui génère du code vers le langage de programmation. Le développeur n'a plus qu'à changer la valeurs des propriétés ou modèles de données, et répondre a des callbacks. Contrairement à QML qui est fait pour être utilisé en C++, (Même si existe bien des bindings Qt pour d'autre langages, ils sont de seconde classe, et la documentation et l'expérience n'est pas idéale), Slint peut être utilisé depuis plusieurs langages de programmation. En ce moment on supporte déjà 3 langages: [Rust](https://slint-ui.com/docs/rust/slint) (qui est aussi le langage d'implémentation), [C++](https://slint-ui.com/docs/cpp/) et [Javascript](https://slint-ui.com/docs/node/) (avec NodeJS). Ce choix de langages montre qu'il est possible de supporter de manière idiomatique à la fois des langages systèmes, et des langages dynamiques. Il est même possible d'utiliser Slint [depuis bash](https://slint-ui.com/blog/showing-guis-from-shell-scripts.html). Les expressions dans le code en .slint sont dans un langage minimaliste à typage fort. Cela permet de faciliter les outils, tel que un un serveur LSP (Language Server Protocol) pour les éditeur de texte qui fait auto-complétion et pré-visualisation, et un future outil graphique. Grâce à ça, le langage Slint est déjà [intégré dans les éditeurs de textes](https://github.com/slint-ui/slint/tree/master/editor) Il y a un style "natif" pour fonctionner sur les environnements de bureau (qui utilise QStyle pour le moment). Il est possible de compiler pour WebAssembly. Voici des liens vers des démos compilées en WebAssembly qui fonctionne dans le navigateur: [Printer](https://slint-ui.com/demos/printerdemo/) - [Puzzle](https://slint-ui.com/demos/slide_puzzle/) - [Plotter](https://slint-ui.com/demos/plotter/) Plus d'exemples: https://github.com/slint-ui/slint/tree/master/examples Slint est aussi léger et performant. Nous ciblons aussi les micro-contrôleurs. Par exemple, comme vous pouvez voir sur cette image, la démo fonctionne sur un [Raspberry Pi Pico](https://www.raspberrypi.com/products/raspberry-pi-pico/) (RP2040), c'est un CortexM0 avec seulement 264KB de RAM et 2MB de Flash qui coûte seulement 4€ (+ 15€ [pour l'écran](https://www.waveshare.com/pico-restouch-lcd-2.8.htm)) ![Slint sur un micro-controleur](https://slint-ui.com/thisweek/2022-03-14/rp-pico-printer.jpg) Et voici une capture d'écran d'un autre programme fait avec Slint qui utilise le style natif de la plateforme (KDE plasma en l’occurrence). Il s'agit de [Cargo UI](https://github.com/slint-ui/cargo-ui) une interface graphique pour Cargo, le gestionnaires de packages de Rust. ![Cargo UI](https://raw.githubusercontent.com/slint-ui/cargo-ui/master/screenshots/main.png) Pour apprendre Slint, vous pouvez suivre le tutoriel ([Rust](https://slint-ui.com/docs/tutorial/rust/), [C++](https://slint-ui.com/docs/tutorial/cpp/)), ou commencer avec un template ([Rust](https://github.com/slint-ui/slint-rust-template), [C++](https://github.com/slint-ui/slint-cpp-template)). Si vous avez des questions ou des rapports de bugs à faire, vous pouvez le faire dans les issues de GitHub ou dans [les discussions](https://github.com/slint-ui/slint/discussions). Site web: https://slint-ui.com

AltStyle によって変換されたページ (->オリジナル) /