[English]

QR code(二维码)

显示原文

QR code generation with LVGL. Uses QR-Code-generator by nayuki.


LVGL 生成二维码的功能,使用到了 nayukiQR-Code-generator

Usage(用法)

显示原文

Enable LV_USE_QRCODE in lv_conf.h.

Use lv_qrcode_create() to create a qrcode object, and use lv_qrcode_update() to generate a QR code.

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(), and call lv_qrcode_update() again to regenerate the QR code.


lv_conf.h 中启用 LV_USE_QRCODE

函数 lv_qrcode_create() 创建二维码对象,函数 lv_qrcode_update() 以生成二维码。

如果需要重新修改尺寸和颜色,请使用函数 lv_qrcode_set_size()lv_qrcode_set_dark_color()lv_qrcode_set_light_color(),以及需要再次调用函数 lv_qrcode_update() 以重新生成(刷新)新的二维码。

Notes(笔记)

显示原文
  • QR codes with less data are smaller, but they scaled by an integer number to best fit to the given size.


  • 数据信息较少的二维码会较小,但它们会按整数缩放以最适合给定的大小。

Example

[English]

Create a QR Code

#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

API

qrcodegen.h

lv_qrcode.h

lv_types.h