二维码¶
使用 LVGL 生成二维码。基于 nayuki 的 QR-Code-generator。
入门¶
下载或克隆此仓库
下载 自 GitHub
克隆:git clone https://github.com/lvgl/lv_lib_qrcode.git
包含库文件:
#include "lv_lib_qrcode/lv_qrcode.h"使用以下代码进行测试:
const char * data = "Hello world";
/*创建一个 100x100 的二维码*/
lv_obj_t * qr = lv_qrcode_create(lv_scr_act(), 100, lv_color_hex3(0x33f), lv_color_hex3(0xeef));
/*设置数据*/
lv_qrcode_update(qr, data, strlen(data));
注意事项¶
数据量较少的二维码尺寸更小,但会按整数倍缩放以适应指定的大小。
示例¶
创建二维码¶
C code
GitHub#include "../../lv_examples.h"
#if LV_USE_QRCODE && LV_BUILD_EXAMPLES
/**
* 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_scr_act(), 150, fg_color, 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
#!/opt/bin/lv_micropython -i
import lvgl as lv
import display_driver
bg_color = lv.palette_lighten(lv.PALETTE.LIGHT_BLUE, 5)
fg_color = lv.palette_darken(lv.PALETTE.BLUE, 4)
qr = lv.qrcode(lv.scr_act(), 150, fg_color, bg_color)
# Set data
data = "https://lvgl.io"
qr.update(data,len(data))
qr.center()
# Add a border with bg_color
qr.set_style_border_color(bg_color, 0)
qr.set_style_border_width(5, 0)
API¶
Functions
-
lv_obj_t *
lv_qrcode_create(lv_obj_t *parent, lv_coord_t size, lv_color_t dark_color, lv_color_t light_color)¶ Create an empty QR code (an
lv_canvas) object.- Parameters
parent -- point to an object where to create the QR code
size -- width and height of the QR code
dark_color -- dark color of the QR code
light_color -- light color of the QR code
- Returns
pointer to the created QR code object
Variables
-
const lv_obj_class_t
lv_qrcode_class¶