/LVGLBuilder

GUI Builder for littlevgl.

Primary LanguageCMIT LicenseMIT

LVGLBuilder

GUI Builder for littlevgl written in C++ and using LVGL for preview of the created GUI and Qt for the higher-level user interface for drag and drop of widgets as well as editing of properties and styles.

Preview

Prerequisites

  • Qt 5.11+ - The Qt framework
  • C++11
  • LVGL 6.1 (included in source since a few adaptions are applied)

Tested on Windows 10 with MSVC 2017 & Qt 5.13.1

Build

Building with console:

  • Move to the cloned LVGLBuild directory
  • Run qmake LVGLBuilder.pro
  • For gcc (Mac/Linux): make
  • For mingw: mingw32-make
  • For windows: jom (make sure that jom.exe is in the environment path)

Building with QtCreator:

  • Download Qt from https://www.qt.io/download-open-source
  • Install Qt with QtCreator
  • Open the LVGLBuilder.pro file with QtCreator
  • Click build project
  • There are no special requironments, therefor it should build with QtCreator out of the box.

Usage

  • Create a new project and select the screen resolution
  • Simply drag and drop widgets from the list into the canvas
  • Widgets can be moved with the arrow keys or by dragging
  • Lock widgets to prevent editing (Unlock via right click context menu)
  • Drop a widget into another widget to set the parent
  • Save and load a project as json file using the menu or tool buttons
  • Mark widgets within the property editor as accessable via the c header
  • Export the project as c code using the menu (File -> Export -> C Project ...)

ToDo General

  • Saving GUI as JSON
  • Loading GUI as JSON
  • Export C-project
  • Change style of single widgets
  • Support different display formats
  • Fix object inspector (insertion and deletion of widgets)
  • Fix absolute and relative positions of widgets
  • Undo and redo
  • Default values for widgets
  • Support multiple screens
  • Dialog for changing keyboard layout
  • Preview for widgets
  • Icons for widgets

Wishlist

  • C code driver generator (Touch, Buttons, Displays for µC)

ToDo Widgets

  • Arc (lv_arc)
  • Bar (lv_bar)
  • Button (lv_btn)
  • Button matrix (lv_btnm)
  • Calendar (lv_calendar)
  • Canvas (lv_canvas)
  • Checkbox (lv_cb)
  • Chart (lv_chart)
  • Container (lv_cont)
  • Color picker (lv_cpicker)
  • Drop-down list (lv_ddlist)
  • Gauge (lv_gauge)
  • Image (lv_img)
  • Image button (lv_imgbtn)
  • Keyboard (lv_kb)
  • Label (lv_label)
  • LED (lv_led)
  • Line (lv_line)
  • List (lv_list)
  • Line meter (lv_lmeter)
  • Message box (lv_mbox)
  • Page (lv_page)
  • Preloader (lv_preload)
  • Roller (lv_roller)
  • Slider (lv_slider)
  • Spinbox (lv_spinbox)
  • Switch (lv_sw)
  • Table (lv_table)
  • Tabview (lv_tabview)
  • Text area (lv_ta)
  • Tile view (lv_tileview)
  • Window (lv_win)