From 237d06943a3f33d9f8e41597aadcc3a80cd461eb Mon Sep 17 00:00:00 2001
From: Gabor Kiss-Vamosi
- English | 中文 | Português do Brasil | 日本語 | עברית
+
+ Docs •
+ Forum •
+ Blog •
+ Services
+
+ EN •
+ 中文 •
+ 日本語 •
+ 한국어 •
+ PT •
+ עברית
-
Light and Versatile Graphics Library
+
+ - Website | - LVGL Pro Editor | - Docs | - Forum | - Demos | -Services + Overview • + Features • + LVGL Pro • + Examples • + Integration • + Contributing • + License
-
- Overview
- Features
- Platform Support
- LVGL Pro Editor
- Commercial Services
- Integrating LVGL
- Examples
- Contributing
-
+
+
+
+
| -## 🧑💻 Integrating LVGL +```c +static void button_clicked_cb(lv_event_t * e) +{ + printf("Clicked\n"); +} + +/* ... */ + +lv_obj_t * button = lv_button_create(lv_screen_active()); +lv_obj_center(button); +lv_obj_add_event_cb(button, button_clicked_cb, + LV_EVENT_CLICKED, NULL); + +lv_obj_t * label = lv_label_create(button); +lv_label_set_text(label, "Hello from LVGL!"); +``` + + | +
+
+```xml
+ |
+
-
-- עברית | 中文 | Português do Brasil | 日本語 | English +
+ תיעוד •
+ פורום •
+ בלוג •
+ שירותים
+
+ EN •
+ 中文 •
+ 日本語 •
+ 한국어 •
+ PT •
+ עברית
+
+ - אתר | - עורך LVGL Pro | - תיעוד | - פורום | - דוגמאות | - שירותים -
- ++ סקירה כללית • + תכונות • + LVGL Pro • + דוגמאות • + שילוב • + תרומה • + רישיון +
-**LVGL** היא ספריית UI חינמית וקוד פתוח שמאפשרת ליצור ממשקי משתמש גרפיים לכל MCU או MPU מכל ספק ועל כל פלטפורמה. +
+
+
+
+
| ```c -#include "lvgl/lvgl.h" /*הגדירו LV_LVGL_H_INCLUDE_SIMPLE כדי לכלול כ-"lvgl.h"*/ +static void button_clicked_cb(lv_event_t * e) +{ + printf("Clicked\n"); +} + +/* ... */ + +lv_obj_t * button = lv_button_create(lv_screen_active()); +lv_obj_center(button); +lv_obj_add_event_cb(button, button_clicked_cb, + LV_EVENT_CLICKED, NULL); + +lv_obj_t * label = lv_label_create(button); +lv_label_set_text(label, "Hello from LVGL!"); +``` + + | +
+
+```xml
+ |
+
+ ドキュメント •
+ フォーラム •
+ ブログ •
+ サービス
+
+ EN •
+ 中文 •
+ 日本語 •
+ 한국어 •
+ PT •
+ עברית
+
+ 概要 • + 機能 • + LVGL Pro • + サンプル • + 統合 • + コントリビュート • + ライセンス +
+ + +## 概要 + +**LVGL** は、無料でオープンソースのUIライブラリであり、あらゆるベンダーのあらゆるMCUやMPU向けに、あらゆるプラットフォーム上でグラフィカルユーザーインターフェースを作成できます。 + +**要件**: LVGLには外部依存関係がないため、小規模なMCUから3D対応のマルチコアLinuxベースMPUまで、あらゆる最新のターゲット向けに簡単にコンパイルできます。*一般的な* UIであれば、必要なのはRAMが約100kB、フラッシュが約200〜300kB、そしてレンダリング用に画面の1/10のバッファサイズだけです。 + +**幅広い採用**: チップベンダー(NXP、Espressif、Renesasなど)、RTOSプロジェクト(Zephyr、NuttXなど)、ボードメーカー(Riverdi、Seeed Studio、VIEWE、Elecrowなど)はすべて、すでにLVGLを統合しています。開発ボードにディスプレイが搭載されているなら、そのベンダーがLVGLサポートも提供している可能性が非常に高いです。 + +**プロフェッショナルツール**: C言語のコードを書く代わりに、[LVGL Pro](#lvgl-pro) を使うことでUI開発を大幅に高速化・簡素化できます。これはEditor、Figma統合、Online Viewer、CLIを備えた完全なツールキットです。追加のランタイムや隠れた仕掛けなしに、XMLから純粋なLVGLのCコードをエクスポートします。非商用利用および評価目的では無料です。 + +**始めるには**、[サンプル](#examples) を見たり、[Simulatorプロジェクト](https://lvgl.io/docs/open/integration/pc) を立ち上げたり、LVGL Proの [Online Viewer](https://viewer.lvgl.io/) を試したり、[LVGL Pro](https://lvgl.io/docs/pro/integration/simulator) でワンクリックでUIをウィンドウ内でコンパイル・実行したり、AI対応の [ドキュメント](https://lvgl.io/docs/open) に飛び込んだりしてみてください。[**Ask AI**](https://lvgl.io/docs/open) をクリックして、何でも質問してみましょう! + + +## 機能 + +**無料、ポータブル、スケーラブル** + - 外部依存関係のない、完全にポータブルなC(C++互換)ライブラリ。 + - 任意の(RT)OSで、任意のMCUまたはMPU向けにコンパイル可能。Make、CMake、シンプルなグロビングのすべてに対応。 + - モノクロ、ePaper、OLED、TFTディスプレイ、さらにはモニターにも対応。[ディスプレイ](https://lvgl.io/docs/open/main-modules/display) + - MITライセンスの下で配布されているため、商用プロジェクトでも簡単に利用できます。 + - 最小構成では、RAM 32kBとフラッシュ128kB、フレームバッファ、そしてレンダリング用に少なくとも画面の1/10サイズのバッファだけで動作します。 + - OS、外部メモリ、GPUに対応していますが、必須ではありません。 + +**ウィジェット、スタイル、レイアウト、その他** + - 30種類以上の組み込み [ウィジェット](https://lvgl.io/docs/open/widgets): Button、Label、Slider、Chart、Keyboard、Meter、Arc、Tableなど多数。 + - 100以上のスタイルプロパティを備えた柔軟な [スタイルシステム](https://lvgl.io/docs/open/common-widget-features/styles) で、あらゆる状態のウィジェットのあらゆる部分をカスタマイズできます。 + - [Flexbox](https://lvgl.io/docs/open/common-widget-features/layouts/flex) と [Grid](https://lvgl.io/docs/open/common-widget-features/layouts/grid) 風のレイアウトエンジンで、ウィジェットのサイズと位置をレスポンシブに自動調整します。 + - UIとアプリケーションを簡単に接続する [データバインディング](https://lvgl.io/docs/open/main-modules/observer)。 + - Mouse、Touchpad、Keypad、Keyboard、外部ボタン、Encoderの [入力デバイス](https://lvgl.io/docs/open/main-modules/indev) に対応。 + - [マルチディスプレイ](https://lvgl.io/docs/open/main-modules/display/overview#how-many-displays-can-lvgl-use) 対応。 + +**レンダリング** + - 基本図形、グラデーション、アンチエイリアス、不透明度、スムーススクロール、ボックスシャドウやドロップシャドウ、画像変換などに対応した組み込み2Dレンダリングエンジン。 + - OpenGLで [glTFモデル](https://sketchfab.com/) を表示する [強力な3Dレンダリングエンジン](https://lvgl.io/docs/open/libs/gltf)。 + - ベクターグラフィックス、SVG、Lottie対応。 + - テキストはUTF-8エンコーディングでレンダリングされ、CJK、タイ語、ヒンディー語、アラビア語、ペルシャ語の書記体系に対応します。 + - VG-Lite、Dave2D、NeoChrome、OpenGLなどのGPUを組み込みでサポート。 + + +## LVGL Pro + +C言語でのUI構築はうまく機能しますが、プロジェクトが成長するにつれて反復作業が遅くなり、一貫性を保つのが難しくなります。[LVGL Pro](https://lvgl.io/pro) を使えば、再利用可能なコンポーネントや画面をビジュアルに構築し、変更を即座にプレビューし、データバインディング、翻訳、アニメーション、テストを一箇所で管理できます。 + +Proは、追加のランタイムや依存関係のない、あなたがすでに使っているのと同じLVGLの、プレーンなLVGLのCコードをエクスポートします。ビルドや出荷の方法を変えることなく、既存のプロジェクトに組み込めます。 + +
+
+
+
+
| + +```c +static void button_clicked_cb(lv_event_t * e) +{ + printf("Clicked\n"); +} + +/* ... */ + +lv_obj_t * button = lv_button_create(lv_screen_active()); +lv_obj_center(button); +lv_obj_add_event_cb(button, button_clicked_cb, + LV_EVENT_CLICKED, NULL); + +lv_obj_t * label = lv_label_create(button); +lv_label_set_text(label, "Hello from LVGL!"); +``` + + | +
+
+```xml
+ |
+
-
-
-
-English | 中文 | Português do Brasil | 日本語 | עברית -
- -
-
-
-
-
-- ウェブサイト | - LVGL Pro エディター | - ドキュメント | - フォーラム | - デモ | - サービス -
- -
+ EN •
+ 中文 •
+ 日本語 •
+ 한국어 •
+ PT •
+ עברית
+
+
++ 개요 • + 기능 • + LVGL Pro • + 예제 • + 통합 • + 기여 • + 라이선스 +
+ + +## 개요 + +**LVGL**은 어떤 벤더의 어떤 MCU 및 MPU에서든, 어떤 플랫폼에서든 그래픽 사용자 인터페이스를 +만들 수 있게 해주는 무료 오픈소스 UI 라이브러리입니다. + +**요구 사항**: LVGL은 외부 의존성이 없어서 소형 MCU부터 3D를 지원하는 멀티코어 리눅스 기반 MPU까지 +어떤 최신 타깃이든 손쉽게 컴파일할 수 있습니다. *일반적인* UI의 경우 약 100kB RAM, +약 200~300kB 플래시, 그리고 렌더링을 위한 화면의 1/10 크기 버퍼만 있으면 됩니다. + +**광범위한 채택**: 칩 벤더(NXP, Espressif, Renesas 등), RTOS 프로젝트(Zephyr, NuttX 등), +그리고 보드 제조사(Riverdi, Seeed Studio, VIEWE, Elecrow 등)가 모두 이미 LVGL을 통합했습니다. 개발 보드에 디스플레이가 있다면 +그 벤더가 LVGL 지원도 제공할 가능성이 매우 높습니다. + +**전문 도구**: C 코드를 작성하는 대신, Editor, Figma 통합, Online Viewer, CLI를 갖춘 완전한 툴킷인 [LVGL Pro](#lvgl-pro)를 사용하면 UI 개발을 크게 가속하고 단순화할 수 있습니다. 추가 런타임이나 숨겨진 마법 없이 XML에서 순수 LVGL C 코드를 내보냅니다. 비상업적 용도와 평가용으로는 무료입니다. + +**시작하려면** [예제](#examples)를 둘러보고, [시뮬레이터 프로젝트](https://lvgl.io/docs/open/integration/pc)를 실행해 보고, LVGL Pro의 [Online Viewer](https://viewer.lvgl.io/)를 탐색하고, [LVGL Pro](https://lvgl.io/docs/pro/integration/simulator)에서 클릭 한 번으로 UI를 창에서 컴파일하고 실행해 보거나, AI 지원 [문서](https://lvgl.io/docs/open)를 살펴보세요. [**Ask AI**](https://lvgl.io/docs/open)를 클릭해서 +무엇이든 물어보세요! + + +## 기능 + +**무료, 이식 가능, 확장 가능** + - 외부 의존성이 없는 완전히 이식 가능한 C(C++ 호환) 라이브러리입니다. + - 어떤 (RT)OS든 사용하여 어떤 MCU 또는 MPU에서든 컴파일할 수 있습니다. Make, CMake, 그리고 간단한 globbing이 모두 지원됩니다. + - 흑백, ePaper, OLED, TFT 디스플레이, 심지어 모니터까지 지원합니다. [디스플레이](https://lvgl.io/docs/open/main-modules/display) + - MIT 라이선스로 배포되므로 상업 프로젝트에서도 손쉽게 사용할 수 있습니다. + - 최소한으로는 32kB RAM과 128kB 플래시, 프레임 버퍼, 그리고 렌더링을 위한 최소 1/10 화면 크기 버퍼만 필요합니다. + - OS, 외부 메모리, GPU는 지원되지만 필수는 아닙니다. + +**위젯, 스타일, 레이아웃 등** + - 30개 이상의 내장 [위젯](https://lvgl.io/docs/open/widgets): Button, Label, Slider, Chart, Keyboard, Meter, Arc, Table 등 다수. + - 어떤 상태에서든 위젯의 모든 부분을 커스터마이징할 수 있는 100개 이상의 스타일 속성을 갖춘 유연한 [스타일 시스템](https://lvgl.io/docs/open/common-widget-features/styles). + - 위젯의 크기와 위치를 반응형으로 자동 조정하는 [Flexbox](https://lvgl.io/docs/open/common-widget-features/layouts/flex) 및 [Grid](https://lvgl.io/docs/open/common-widget-features/layouts/grid) 유사 레이아웃 엔진. + - UI를 애플리케이션과 손쉽게 연결하는 [데이터 바인딩](https://lvgl.io/docs/open/main-modules/observer). + - Mouse, Touchpad, Keypad, Keyboard, 외부 버튼, Encoder [입력 장치](https://lvgl.io/docs/open/main-modules/indev)를 지원합니다. + - [다중 디스플레이](https://lvgl.io/docs/open/main-modules/display/overview#how-many-displays-can-lvgl-use) 지원. + +**렌더링** + - 기본 도형, 그라디언트, 안티앨리어싱, 불투명도, 부드러운 스크롤, 박스 및 드롭 섀도, 이미지 변환 등을 지원하는 내장 2D 렌더링 엔진. + - OpenGL로 [glTF 모델](https://sketchfab.com/)을 표시하는 [강력한 3D 렌더링 엔진](https://lvgl.io/docs/open/libs/gltf). + - 벡터 그래픽, SVG, Lottie 지원. + - 텍스트는 UTF-8 인코딩으로 렌더링되며, CJK, 태국어, 힌디어, 아랍어, 페르시아어 문자 체계를 지원합니다. + - VG-Lite, Dave2D, NeoChrome, OpenGL 등 GPU에 대한 내장 지원. + + +## LVGL Pro + +C로 UI를 만드는 것도 잘 작동하지만, 프로젝트가 커질수록 반복 작업이 느려지고 일관성을 유지하기가 어려워집니다. +[LVGL Pro](https://lvgl.io/pro)를 사용하면 재사용 가능한 컴포넌트와 화면을 시각적으로 만들고, 변경 사항을 +즉시 미리 보고, 데이터 바인딩, 번역, 애니메이션, 테스트를 한곳에서 관리할 수 있습니다. + +Pro는 평범한 LVGL C 코드를 내보냅니다. 이미 사용 중인 바로 그 LVGL이며, 추가 런타임이나 의존성이 없습니다. 빌드하거나 +배포하는 방식을 바꾸지 않고도 기존 프로젝트에 그대로 들어갑니다. + +
+
+
+
+
| + +```c +static void button_clicked_cb(lv_event_t * e) +{ + printf("Clicked\n"); +} + +/* ... */ + +lv_obj_t * button = lv_button_create(lv_screen_active()); +lv_obj_center(button); +lv_obj_add_event_cb(button, button_clicked_cb, + LV_EVENT_CLICKED, NULL); + +lv_obj_t * label = lv_label_create(button); +lv_label_set_text(label, "Hello from LVGL!"); +``` + + | +
+
+```xml
+ |
+
-
-- English | - 中文 | - Português do Brasil | - 日本語 | +
+ Docs •
+ Fórum •
+ Blog •
+ Serviços
+
+ EN •
+ 中文 •
+ 日本語 •
+ 한국어 •
+ PT •
עברית
+
+ - Site | - Editor LVGL Pro | - Documentação | - Fórum | - Demos | - Serviços -
- ++ Visão geral • + Recursos • + LVGL Pro • + Exemplos • + Integração • + Contribuindo • + Licença +
-**LVGL** é uma biblioteca de UI gratuita e de código aberto que permite criar interfaces gráficas -para qualquer MCU e MPU, de qualquer fabricante, em qualquer plataforma. + +## Visão geral -**Requisitos**: o LVGL não possui dependências externas, o que facilita compilar para qualquer alvo moderno, -desde pequenos MCUs até MPUs Linux multicore com suporte a 3D. Para uma UI simples, você precisa de ~100 kB de RAM, -~200–300 kB de flash e um buffer de renderização com 1/10 do tamanho da tela. +O **LVGL** é uma biblioteca de UI livre e de código aberto que permite criar interfaces gráficas de usuário +para quaisquer MCUs e MPUs, de qualquer fabricante, em qualquer plataforma. -**Para começar**, escolha um projeto pronto para uso no VSCode, Eclipse ou outro, e experimente o LVGL -no seu PC. O código de UI do LVGL é totalmente independente de plataforma, então você pode reutilizá-lo -nos seus alvos embarcados. +**Requisitos**: o LVGL não possui dependências externas, o que facilita sua compilação para qualquer alvo moderno, +de pequenos MCUs a MPUs multi-core baseados em Linux com suporte a 3D. Para uma UI *típica*, você precisa de apenas ~100kB de RAM, +~200–300kB de flash e um buffer com 1/10 do tamanho da tela para renderização. -**LVGL Pro** é um kit completo para ajudar você a criar, testar, compartilhar e entregar UIs com mais rapidez. -Ele inclui um Editor XML onde você pode criar e testar componentes reutilizáveis, -exportar código C ou carregar os XMLs em tempo de execução. Saiba mais aqui. +**Ampla adoção**: fabricantes de chips (como NXP, Espressif, Renesas e assim por diante), projetos de RTOS (Zephyr, NuttX, etc.) +e fabricantes de placas (Riverdi, Seeed Studio, VIEWE, Elecrow, etc.) já integraram o LVGL. Se uma placa de desenvolvimento tem um display, é muito provável +que o fabricante também ofereça suporte ao LVGL. -## 💡 Recursos +**Ferramentas profissionais**: em vez de escrever código C, você pode acelerar e simplificar enormemente o desenvolvimento de UI usando o [LVGL Pro](#lvgl-pro), um kit de ferramentas completo com Editor, integração com Figma, Online Viewer e CLI. Ele exporta código C puro do LVGL a partir de XML, sem runtime extra ou mágica oculta. É gratuito para uso não comercial e avaliação. -**Gratuito e portátil** - - Biblioteca totalmente em C (compatível com C++) sem dependências externas. - - Pode ser compilada para qualquer MCU ou MPU, com qualquer (RT)OS. Make, CMake e globbing simples são suportados. - - Suporta displays monocromáticos, ePaper, OLED, TFT e até monitores. [Displays](https://docs.lvgl.io/master/main-modules/display/index.html) - - Licença MIT, o que facilita o uso em projetos comerciais. - - Precisa de apenas 32 kB de RAM, 128 kB de Flash, um frame buffer e pelo menos um buffer de 1/10 da tela para renderização. - - Sistema operacional, memória externa e GPU são suportados, mas não obrigatórios. +**Para começar**, navegue pelos [Exemplos](#examples), inicie um [projeto de Simulador](https://lvgl.io/docs/open/integration/pc), explore o [Online Viewer](https://viewer.lvgl.io/) do LVGL Pro, compile e execute uma UI em uma janela no [LVGL Pro](https://lvgl.io/docs/pro/integration/simulator) com um clique, ou mergulhe na nossa [documentação](https://lvgl.io/docs/open) pronta para IA. Basta clicar em [**Ask AI**](https://lvgl.io/docs/open) +e perguntar qualquer coisa! -**Widgets, estilos, layouts e mais** - - 30+ [Widgets](https://docs.lvgl.io/master/widgets/index.html) embutidos: Button, Label, Slider, Chart, Keyboard, Meter, Arc, Table e muitos outros. - - [Sistema de estilos](https://docs.lvgl.io/master/common-widget-features/styles/index.html) flexível com ~100 propriedades para personalizar qualquer parte dos widgets em qualquer estado. - - Motores de layout tipo [Flexbox](https://docs.lvgl.io/master/common-widget-features/layouts/flex.html) e [Grid](https://docs.lvgl.io/master/common-widget-features/layouts/grid.html) para dimensionar e posicionar widgets de forma responsiva. - - Texto renderizado com codificação UTF-8, com suporte a CJK, tailandês, híndi, árabe e persa. - - [Data bindings](https://docs.lvgl.io/master/main-modules/observer/index.html) para conectar facilmente a UI ao aplicativo. - - Motor de renderização com suporte a animações, antialiasing, opacidade, rolagem suave, sombras, transformação de imagens e mais. - - [Poderoso motor de renderização 3D](https://docs.lvgl.io/master/libs/gltf.html) para exibir [modelos glTF](https://sketchfab.com/) com OpenGL. - - Suporte a mouse, touchpad, keypad, teclado, botões externos e encoder. [Dispositivos de entrada](https://docs.lvgl.io/master/main-modules/indev.html) - - Suporte a [múltiplos displays](https://docs.lvgl.io/master/main-modules/display/overview.html#how-many-displays-can-lvgl-use). + +## Recursos -## 📦️ Plataformas compatíveis +**Livre, portátil e escalável** + - Uma biblioteca C totalmente portátil (compatível com C++) sem dependências externas. + - Pode ser compilada para qualquer MCU ou MPU, com qualquer (RT)OS. Make, CMake e globbing simples são todos suportados. + - Suporta displays monocromáticos, ePaper, OLED ou TFT, ou até monitores. [Displays](https://lvgl.io/docs/open/main-modules/display) + - Distribuída sob a licença MIT, então você pode usá-la facilmente em projetos comerciais também. + - No mínimo absoluto, precisa apenas de 32kB de RAM e 128kB de Flash, um frame buffer e pelo menos um buffer com 1/10 do tamanho da tela para renderização. + - OS, memória externa e GPU são suportados, mas não obrigatórios. -O LVGL não possui dependências externas, por isso é fácil de compilar para qualquer dispositivo e também está disponível em vários gerenciadores de pacotes e RTOS: +**Widgets, estilos, layouts e muito mais** + - Mais de 30 [Widgets](https://lvgl.io/docs/open/widgets) integrados: Button, Label, Slider, Chart, Keyboard, Meter, Arc, Table e muitos outros. + - [Sistema de estilos](https://lvgl.io/docs/open/common-widget-features/styles) flexível com mais de 100 propriedades de estilo para personalizar qualquer parte dos widgets em qualquer estado. + - Motores de layout semelhantes a [Flexbox](https://lvgl.io/docs/open/common-widget-features/layouts/flex) e [Grid](https://lvgl.io/docs/open/common-widget-features/layouts/grid) para dimensionar e posicionar os widgets de forma responsiva automaticamente. + - [Data bindings](https://lvgl.io/docs/open/main-modules/observer) para conectar facilmente a UI à aplicação. + - Suporta Mouse, Touchpad, Keypad, Keyboard, botões externos e Encoder [dispositivos de entrada](https://lvgl.io/docs/open/main-modules/indev). + - Suporte a [múltiplos displays](https://lvgl.io/docs/open/main-modules/display/overview#how-many-displays-can-lvgl-use). -- [Biblioteca Arduino](https://docs.lvgl.io/master/integration/framework/arduino.html) -- [Pacote PlatformIO](https://registry.platformio.org/libraries/lvgl/lvgl) -- [Biblioteca Zephyr](https://docs.lvgl.io/master/integration/os/zephyr.html) -- [Componente ESP-IDF (ESP32)](https://components.espressif.com/components/lvgl/lvgl) -- [Componente NXP MCUXpresso](https://www.nxp.com/design/software/embedded-software/lvgl-open-source-graphics-library:LITTLEVGL-OPEN-SOURCE-GRAPHICS-LIBRARY) -- [Biblioteca NuttX](https://docs.lvgl.io/master/integration/os/nuttx.html) -- [RT-Thread RTOS](https://docs.lvgl.io/master/integration/os/rt-thread.html) -- CMSIS-Pack -- [Pacote RIOT OS](https://doc.riot-os.org/group__pkg__lvgl.html#details) +**Renderização** + - Motor de renderização 2D integrado com suporte a formas básicas, gradientes, anti-aliasing, opacidade, rolagem suave, sombras de caixa e projetadas, transformação de imagens, etc. + - [Motor de renderização 3D poderoso](https://lvgl.io/docs/open/libs/gltf) para exibir [modelos glTF](https://sketchfab.com/) com OpenGL. + - Suporte a gráficos vetoriais, SVG e Lottie. + - O texto é renderizado com codificação UTF-8, com suporte aos sistemas de escrita CJK, tailandês, hindi, árabe e persa. + - Suporte integrado a GPUs como VG-Lite, Dave2D, NeoChrome, OpenGL, etc. -## 🚀 Editor LVGL Pro + +## LVGL Pro -O LVGL Pro é um conjunto completo para criar, testar, compartilhar e entregar UIs embarcadas com eficiência. +Construir UIs em C funciona bem, mas se torna lento para iterar e mais difícil de manter consistente à medida que um projeto cresce. +O [LVGL Pro](https://lvgl.io/pro) permite construir componentes e telas reutilizáveis visualmente, visualizar mudanças +instantaneamente e gerenciar data bindings, traduções, animações e testes em um só lugar. -Ele é composto por quatro ferramentas integradas: +O Pro exporta código C puro do LVGL: o mesmo LVGL que você já usa, sem runtime extra ou dependência. Ele se encaixa +em um projeto existente sem mudar a forma como você compila ou entrega. -1. **Editor XML**: o coração do LVGL Pro. Um app de desktop para criar componentes e telas em XML, gerenciar data bindings, traduções, animações, testes e mais. Saiba mais sobre o [formato XML](https://docs.lvgl.io/master/xml/xml/index.html) e o [Editor](https://docs.lvgl.io/master/xml/editor/index.html). -2. **Visualizador online**: execute o Editor no navegador, abra projetos do GitHub e compartilhe facilmente sem configurar um ambiente de desenvolvimento. Visite [https://viewer.lvgl.io](https://viewer.lvgl.io). -3. **Ferramenta CLI**: gere código C e rode testes no CI/CD. Veja os detalhes [aqui](https://docs.lvgl.io/master/xml/tools/cli.html). -4. **Plugin Figma**: sincronize e extraia estilos diretamente do Figma. Veja como funciona [aqui](https://docs.lvgl.io/master/xml/tools/figma.html). +
+
+
+
+
| ```c -#include "lvgl/lvgl.h" /*Defina LV_LVGL_H_INCLUDE_SIMPLE para incluir como "lvgl.h"*/ +static void button_clicked_cb(lv_event_t * e) +{ + printf("Clicked\n"); +} + +/* ... */ + +lv_obj_t * button = lv_button_create(lv_screen_active()); +lv_obj_center(button); +lv_obj_add_event_cb(button, button_clicked_cb, + LV_EVENT_CLICKED, NULL); + +lv_obj_t * label = lv_label_create(button); +lv_label_set_text(label, "Hello from LVGL!"); +``` + + | +
+
+```xml
+ |
+
-
-- English | 中文 | Português do Brasil | 日本語 | עברית -
-
-
+ 文档 •
+ 论坛 •
+ 博客 •
+ 服务
+
+ EN •
+ 中文 •
+ 日本語 •
+ 한국어 •
+ PT •
+ עברית
-
-
-
- 网站 |
- LVGL Pro 编辑器 |
- 文档 |
- 论坛 |
- 演示 |
- 服务
+
+
+ 概述 • + 功能特性 • + LVGL Pro • + 示例 • + 集成 • + 参与贡献 • + 许可证 +
-**开始使用**:选择一个可直接使用的 VSCode、Eclipse 或其他项目,在 PC 上尝试 LVGL。LVGL 的 UI 代码完全平台无关,因此也可直接用于嵌入式设备。 + +## 概述 -**LVGL Pro** 是一套完整的工具包,可让你更快地构建、测试、共享和发布 UI。它附带一个 XML 编辑器,你可以在其中快速创建和测试可重用组件,导出 C 代码,或在运行时加载 XML。了解更多信息请点击这里。 +**LVGL** 是一个免费的开源 UI 库,让你能够为任何厂商、任何平台上的任何 MCU 和 MPU 创建图形用户界面。 -## 💡 特性 +**需求条件**:LVGL 没有任何外部依赖,因此可以轻松编译到任何现代目标平台,从小型 MCU 到支持 3D 的多核 Linux MPU 皆可。对于*典型*的 UI,你只需要约 100kB RAM、约 200–300kB flash,以及相当于屏幕 1/10 大小的缓冲区用于渲染。 -**免费与可移植性** - - 纯 C(兼容 C++)库,无外部依赖。 - - 可为任意 MCU 或 MPU 编译,支持任何 (RT)OS。支持 Make、CMake 和简单文件匹配。 - - 支持单色、电子墨水、OLED、TFT 显示器,甚至是 PC 显示器。详见 [显示模块](https://docs.lvgl.io/master/main-modules/display/index.html) - - 采用 MIT 许可证,可自由用于商业项目。 - - 仅需 32kB RAM、128kB Flash、一个帧缓冲区,以及至少 1/10 屏幕大小的渲染缓冲。 - - 支持但不强制要求使用操作系统、外部存储或 GPU。 +**广泛采用**:芯片厂商(如 NXP、Espressif、Renesas 等)、RTOS 项目(Zephyr、NuttX 等)以及开发板制造商(Riverdi、Seeed Studio、VIEWE、Elecrow 等)都已经集成了 LVGL。如果一块开发板带有显示屏,那么厂商很可能也提供了 LVGL 支持。 -**控件、样式、布局等** - - 超过 30 个内置 [控件](https://docs.lvgl.io/master/widgets/index.html):按钮、标签、滑块、图表、键盘、仪表、弧形、表格等。 - - 灵活的 [样式系统](https://docs.lvgl.io/master/common-widget-features/styles/index.html),提供约 100 种属性,可自定义控件任意部分与状态。 - - [Flexbox](https://docs.lvgl.io/master/common-widget-features/layouts/flex.html) 和 [Grid](https://docs.lvgl.io/master/common-widget-features/layouts/grid.html) 布局引擎可实现自适应布局。 - - 文本支持 UTF-8 编码,兼容中日韩、泰语、印地语、阿拉伯语、波斯语等。 - - [数据绑定](https://docs.lvgl.io/master/main-modules/observer/index.html) 模块轻松连接 UI 与应用逻辑。 - - 渲染引擎支持动画、抗锯齿、不透明度、平滑滚动、阴影、图像变换等。 - - [强大的 3D 渲染引擎](https://docs.lvgl.io/master/libs/gltf.html),可使用 OpenGL 显示 [glTF 模型](https://sketchfab.com/)。 - - 支持鼠标、触摸板、按键、键盘、外部按钮、编码器等 [输入设备](https://docs.lvgl.io/master/main-modules/indev.html)。 - - 支持 [多显示屏](https://docs.lvgl.io/master/main-modules/display/overview.html#how-many-displays-can-lvgl-use)。 +**专业工具**:与其编写 C 代码,你还可以使用 [LVGL Pro](#lvgl-pro) 来大幅加速并简化 UI 开发。它是一套完整的工具包,包含 Editor、Figma 集成、Online Viewer 和 CLI。它能从 XML 导出纯粹的 LVGL C 代码,没有额外的运行时,也没有隐藏的黑魔法。它对非商业用途和评估用途免费。 -## 📦️ 平台支持 +**开始上手**,可以浏览[示例](#examples)、启动一个[模拟器项目](https://lvgl.io/docs/open/integration/pc)、探索 LVGL Pro 的 [Online Viewer](https://viewer.lvgl.io/)、在 [LVGL Pro](https://lvgl.io/docs/pro/integration/simulator) 中一键编译并在窗口中运行 UI,或者深入阅读我们面向 AI 就绪的[文档](https://lvgl.io/docs/open)。只需点击 [**Ask AI**](https://lvgl.io/docs/open),即可尽情提问! -LVGL 无外部依赖,因此可轻松编译到任何设备,并已被多个包管理器与 RTOS 集成: + +## 功能特性 -- [Arduino 库](https://docs.lvgl.io/master/integration/framework/arduino.html) -- [PlatformIO 包](https://registry.platformio.org/libraries/lvgl/lvgl) -- [Zephyr 库](https://docs.lvgl.io/master/integration/os/zephyr.html) -- [ESP-IDF (ESP32) 组件](https://components.espressif.com/components/lvgl/lvgl) -- [NXP MCUXpresso 组件](https://www.nxp.com/design/software/embedded-software/lvgl-open-source-graphics-library:LITTLEVGL-OPEN-SOURCE-GRAPHICS-LIBRARY) -- [NuttX 库](https://docs.lvgl.io/master/integration/os/nuttx.html) -- [RT-Thread RTOS](https://docs.lvgl.io/master/integration/os/rt-thread.html) -- CMSIS-Pack -- [RIOT OS 包](https://doc.riot-os.org/group__pkg__lvgl.html#details) +**免费、可移植、可扩展** + - 完全可移植的 C(兼容 C++)库,没有任何外部依赖。 + - 可为任何 MCU 或 MPU、任何 (RT)OS 编译。支持 Make、CMake 以及简单的通配(globbing)。 + - 支持单色屏、ePaper、OLED、TFT 显示屏,甚至显示器。[显示屏](https://lvgl.io/docs/open/main-modules/display) + - 基于 MIT 许可证发布,因此你也可以轻松将其用于商业项目。 + - 最低仅需 32kB RAM 和 128kB Flash、一个帧缓冲区,以及至少屏幕 1/10 大小的缓冲区用于渲染。 + - 支持 OS、外部内存和 GPU,但并非必需。 -## 🚀 LVGL Pro 编辑器 +**控件、样式、布局及更多** + - 30 多种内置[控件](https://lvgl.io/docs/open/widgets):Button、Label、Slider、Chart、Keyboard、Meter、Arc、Table 等等。 + - 灵活的[样式系统](https://lvgl.io/docs/open/common-widget-features/styles),拥有 100 多个样式属性,可在任何状态下定制控件的任何部分。 + - 类似 [Flexbox](https://lvgl.io/docs/open/common-widget-features/layouts/flex) 和 [Grid](https://lvgl.io/docs/open/common-widget-features/layouts/grid) 的布局引擎,可自动地响应式调整控件的尺寸和位置。 + - [数据绑定](https://lvgl.io/docs/open/main-modules/observer),可轻松将 UI 与应用程序连接起来。 + - 支持鼠标、触摸板、小键盘、键盘、外部按钮、编码器等[输入设备](https://lvgl.io/docs/open/main-modules/indev)。 + - 支持[多显示屏](https://lvgl.io/docs/open/main-modules/display/overview#how-many-displays-can-lvgl-use)。 -LVGL Pro 是一套完整的工具,用于高效构建、测试、共享和交付嵌入式 UI。 +**渲染** + - 内置 2D 渲染引擎,支持基本形状、渐变、抗锯齿、不透明度、平滑滚动、盒子阴影和投影阴影、图像变换等。 + - [强大的 3D 渲染引擎](https://lvgl.io/docs/open/libs/gltf),可通过 OpenGL 展示 [glTF 模型](https://sketchfab.com/)。 + - 支持矢量图形、SVG 和 Lottie。 + - 文本采用 UTF-8 编码渲染,支持 CJK、泰文、印地文、阿拉伯文和波斯文书写系统。 + - 内置对 VG-Lite、Dave2D、NeoChrome、OpenGL 等 GPU 的支持。 -它包含四个紧密集成的工具: + +## LVGL Pro -1. **XML 编辑器**:LVGL Pro 的核心。桌面应用,用于通过 XML 构建组件与界面,管理数据绑定、翻译、动画、测试等。了解更多 [XML 格式](https://docs.lvgl.io/master/xml/xml/index.html) 和 [编辑器](https://docs.lvgl.io/master/xml/editor/index.html)。 -2. **在线预览器**:在浏览器中运行编辑器,打开 GitHub 项目,无需搭建开发环境即可共享。访问 [https://viewer.lvgl.io](https://viewer.lvgl.io)。 -3. **CLI 工具**:在 CI/CD 中生成 C 代码并运行测试。详见 [此处](https://docs.lvgl.io/master/xml/tools/cli.html)。 -4. **Figma 插件**:直接从 Figma 同步和提取样式。了解更多 [这里](https://docs.lvgl.io/master/xml/tools/figma.html)。 +用 C 构建 UI 效果不错,但随着项目变大,迭代会变慢,也更难保持一致性。[LVGL Pro](https://lvgl.io/pro) 让你能够可视化地构建可复用的组件和屏幕、即时预览变更,并在一处统一管理数据绑定、翻译、动画和测试。 -这些工具结合在一起,帮助开发者高效构建 UI、可靠测试,并便于团队协作。 +Pro 导出的是纯粹的 LVGL C 代码:就是你已经在用的那个 LVGL,没有额外的运行时或依赖。它能直接放入现有项目,无需改变你构建或发布的方式。 -了解更多:https://pro.lvgl.io +
+
+
+
+
| ```c -#include "lvgl/lvgl.h" /*定义 LV_LVGL_H_INCLUDE_SIMPLE 可直接使用 "lvgl.h"*/ +static void button_clicked_cb(lv_event_t * e) +{ + printf("Clicked\n"); +} + +/* ... */ + +lv_obj_t * button = lv_button_create(lv_screen_active()); +lv_obj_center(button); +lv_obj_add_event_cb(button, button_clicked_cb, + LV_EVENT_CLICKED, NULL); + +lv_obj_t * label = lv_label_create(button); +lv_label_set_text(label, "Hello from LVGL!"); +``` + + | +
+
+```xml
+ |
+
~NR^Cn#V&^`OuDB8%cs#nWbb4<3i+du*LbVfSh*5t#n9kDYj~Y5
z_1*b9Ek_m;N1>~(^b`IVr_ 3g3aqJL~6a>WL5+`rw_Qh0Q-S-39?}_+-&n~FDX^hSztA7R0R44Yb
zZTvg_!g*B|_FeIj?_0s+UybeS$|g`J5p38CQaSVc+vk7Z2tob;P~rFAXK(H_qvIb*Jl?LZQ}R2W$eu^cv(
z^@${h^UnjdEF!wjNU!<6m;T?~x_nWBQ5wZkq5rUH^pCa66q6X>UG*qnl}3?t6pb*Q
zmhj7R%hz~_Q^Q7!o-mv*OGun>e0)Lk+~$7M4)@L8hS{NwZoeJN&@_P2_pSCo^7|$H
z)dm9k5cmgSv0J|NLA>YEi%uePw660{EkYi2t{kQdZOiDWubv;z@xM9>(Ox)GD^jue
z98GT~qFt%=NX&uBFF4UJFnDbXr#0`q9E2uO+L@VOT7R%=$$Kus_2r`u9oI3c&pa51
zYVE_Tk?Dti|G`kw=Ubzxj1aEe2_;4|3Ll5$qH|9M)t0BK>7`n=lbmczTY;)=MGo@(
z9RB@i2U=h718xy`z#Gz!olrZ~vE95L%~cmBzw>Ta>8Z}MMluPgV6c=f8HZ*tOgl7@!lF%Wfwo`}&cC*8)&7
zF+>X{wzZn2T46HihAEn@uP1cuRxk&
5DXxhIDque`
z@z*Qh!J=J;LO>AGxYj_S)>PZFVVs)8_2c|9e1{~x$MCW34{90uT3Otu_{vZ5U51nG
z@3roLEfs1_W@|Yo;A;pH-uBO=XnZ#ge80V_&>W$Fpy)TD(N%!UsKOJzG%27V#CF4V
zg}S5YkLlWYV#I^Rh(?oH!Bailxfa4)uZeD{>P8oQr@bk`6&%g4A5QuFNtA2j4-&y(
z!4ni&ViQ6E>rP8U_Sfan8IG!lnABi~hRKXKU)+V>3I5>EkJwL#HRXOBepx-4gpfcs
z)7pUFtBYFFw#J{sezQ~_Wwd&r5toQhKpGe+7MaV^R#kb!6WjL9sOBQ~6H(z)KV^Hb
zSbIniVi4ax_qCpv26Pf!cB}_e#C=kUsEN=0deiOE4hrg}ZNIly!y84F>xyTq10&ot
z&+wGa!5HV $pe8#zAAN6SN-TBwto+E>-L*d
zN~(vip
;=*XuOyorq656c3;C8-AGsFnxMB