Skip to content

staunchheart/LVGLBuilder

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

95 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

1.0.4 preview

Version 1.0.4 is expected to be released in late July.

Support exporting all pages

savebehavior

Support a single file to save all pages

exportbehavior

Added Color format option

  • The loaded picture does not need to manually set the conversion format (PS: The loading of gif images will be supported in the future)
  • colordepth1
  • colordepth2

Support different themes

  • Colorful style(LOL):You can quickly modify the style of the specified part according to these different colors

    badstyle

  • Dark theme

    newstyle

  • The theme is realized by loading the configuration file, so you can create your favorite style themes.

Complete testing process

  • Many test cases will be added under the test file, and the program will be released after all passed

Support multiple language

setlanguage

  • Now supports Chinese and English

  • Automatically save language settings, no need to set the next restart

  • Switch language first, then drag widgets

  • The name translation of the style needs to restart the client

  • Only projects of the same language can be loaded, so projects of versions before 1.0.4 are only applicable to English.

    Because the original design needs to be changed a lot, this will cause a lot of problems.

  • Support customization, you can add languages according to the following pictures

  • setlanguage

Google Breakpad

The next version 1.0.4 version starts to support google breakpad

  • Currently only used for window
  • If the program crashes, please check whether the dmp file is generated. If it exists, you can send it to me for debugging and tracking
  • If the release version is to generate a pdb file, please uncomment these two lines of code in the pro file QMAKE_CXXFLAGS_RELEASE += $$QMAKE_CFLAGS_RELEASE_WITH_DEBUGINFO QMAKE_LFLAGS_RELEASE += $$QMAKE_LFLAGS_RELEASE_WITH_DEBUGINFO

New features

The pre-release of v1.0.3 has been released. Changelog.md under the dev-v7 branch records the changes of the previous version.

1.0.3

  • LABEL/TEXTAREA support LVGL's SYMBOL,just enter (LV_S_XXX) in the text box, such as (LV_S_WIFI) SupportSyb

  • Some widgets have new functions, such as animation switch and type selection

  • Fixed the issue of compiling errors caused by using a custom page name

  • New export method, hierarchical export will classify pictures, fonts and c codes, and then classify them into different page folders 【Experimental features

    epway

  • Improve the naming logic when creating a new page or event

  • Optimize the export logic, will not copy the same font file repeatedly

  • Fix that the image event function fails to compile when the image name contains uppercase letters

Fixed crash bugs

These bugs exist in release versions before 1.0.3

  • If the value_str attribute of the button is set or a configuration file containing this attribute is loaded, it will sometimes cause the program to crash.
  • If the current page contains a page switching event, and the target page of the page switching event is closed, exporting the code at this time will cause the program to crash.

Old Version

  • The changlog.md of the dev-v7 branch records all the new features

New Test Tool

[For Test]arm-none-linux-gnueabi-i686-mingw32-2014 on window https://github.com/mrQzs/CreateLvglLib/releases

Export LVGL Code Build

  • Need to select hierarchical export
  • The cc path of Makefile originally needed to be modified, but this time the path of armgcc was added to the environment variable

program: https://github.com/mrQzs/LCBuild

lbcode

Create LVGL LIB

  • Select the output device and input device file of the corresponding platform

  • lv_drv_conf.h should also enable the corresponding input device and output device

  • Both lvgl and drive are the latest official v7 version

    This project modified the source code of lvgl to achieve some functions (such as tabwidth adjustment), so the official lvgl can be replaced by the lvgl of this project.

    tabwidth

program: https://github.com/mrQzs/CreateLvglLib

createlib

LVGL Simulator

program: https://github.com/mrQzs/Lvgl_Simulator

  • support msvc 32/64 and mingw 32/64

  • Put the code file generated by lvglbuilder in the testcode folder

  • Just load the source code and modify the resolution in the lvconf.h

    lvglsim

LVGLBuilder

GUI Builder for littlevgl release 6.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.

Preview

Prerequisites

  • Qt 5.11+ - The Qt framework
  • C++11
  • LVGL 6.1 (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.15.2
  • Ubuntu 18.04.4 + Qt 5.14.2
  • Ubuntu 20.04 + Qt 5.12.8

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
  • 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)

About

GUI Builder for littlevgl.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • C 71.6%
  • HTML 18.9%
  • C++ 3.5%
  • Shell 2.7%
  • Makefile 1.3%
  • Python 0.9%
  • Other 1.1%