mirror of
https://github.com/CURTLab/LVGLBuilder.git
synced 2025-05-09 03:41:35 +08:00
Very Very Very important
- Try not to delete the page
- Save files at any time or turn on the auto-save function
Future plan
-
The changes to lvgl8.0 are very large, and it is still being changed, so it is expected to start supporting lvgl8.0 in November
-
After the dotolist is completed, no new functions will be added later. At that time, the entire project code will be refactored.
New Todo List
- (First) Add Event System
- (Second) Redesign the multi-page function, a single page can simulate all pages
- Add move Animation
- Add test cases and add detailed event function usage instructions
- Implement the unadded functions of the remaining widgets
- Realize all event functions
- Support more complex animation events
- Realize the simulation operation function to stop at any time and immediately restore the initial state
- All event function parameters must meet the requirements
- Realize the automatic save function
- Refactor the code related to the style of the widget
- redo/undo supports new multi-page design
- Refactored font conversion code, no need for multiple font files of different sizes, reducing a lot of storage space
- Add language switching function
- Encapsulate log operation API
- Dialog for changing keyboard layout
Widget Style Select
- Switch & slider Style
Event System
- support sceen screen
- support arc event
LVGLBuilder
GUI Builder for littlevgl release 7.0+ 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.
Qt Setting
Prerequisites
- Qt 5.11+ - The Qt framework
- C++11
- LVGL 7.11 (included in source since a few adaptions are applied)
Tested:
- Windows 10 + MSVC 2019 + Qt 5.15.1
- Windows 10 + MinGW 8.1 + Qt 5.12.9
- Ubuntu 18.04.4 + Qt 5.14.2
- Window 10 + MSVC 2015 32/64 + Qt 5.12.10
- Window 10 + MSVC 2017 32/64 + Qt 5.12.10
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 ...)
- Support keyboard shortcuts: Ctrl+F new file; Ctrl+W load file; Ctrl+E export c code;1 to page1; 2 to page2; etc...
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
- Preview for widgets
- Icons for widgets
- Support for lvgl 7.x
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)
Languages
C
71.8%
HTML
18.9%
C++
3.2%
Shell
2.7%
Makefile
1.3%
Other
2%