QR Code
The QR-Code-generator library by nayuki is a 3rd-party library that generates QR-Code bitmaps.
The lv_qrcode LVGL extension is an interface to that library which implements a custom Widget that generates and displays QR Codes using the library.
Usage
Enable LV_USE_QRCODE
in lv_conf.h
by setting its value to 1
.
Use lv_qrcode_create()
to create the QR-Code Widget. Then use
lv_qrcode_update()
to generate the QR Code on it.
If you need to re-modify the size and color, use
lv_qrcode_set_size()
and lv_qrcode_set_dark_color()
or
lv_qrcode_set_light_color()
respectively, and then
call lv_qrcode_update()
again to update the QR Code.
Notes
QR Codes with less data are smaller, but they are scaled by an integer value to best fit to the given size.
Example
Create a QR Code
C code
View on GitHub#include "../../lv_examples.h"
#if LV_USE_QRCODE && LV_BUILD_EXAMPLES
#include <string.h>
/**
* Create a QR Code
*/
void lv_example_qrcode_1(void)
{
lv_color_t bg_color = lv_palette_lighten(LV_PALETTE_LIGHT_BLUE, 5);
lv_color_t fg_color = lv_palette_darken(LV_PALETTE_BLUE, 4);
lv_obj_t * qr = lv_qrcode_create(lv_screen_active());
lv_qrcode_set_size(qr, 150);
lv_qrcode_set_dark_color(qr, fg_color);
lv_qrcode_set_light_color(qr, bg_color);
/*Set data*/
const char * data = "https://lvgl.io";
lv_qrcode_update(qr, data, strlen(data));
lv_obj_center(qr);
/*Add a border with bg_color*/
lv_obj_set_style_border_color(qr, bg_color, 0);
lv_obj_set_style_border_width(qr, 5, 0);
}
#endif