使用GUI Guider工具开发嵌入式GUI应用 (3) - 使用label组件

GUIGuider教程:嵌入式GUI应用中使用LVGLlabel组件,
本文详细介绍了如何在GUIGuider中创建和配置LVGL的label组件,包括添加、编辑属性、生成源码并将其集成到Keil工程中,最后预览和部署到MCU开发板上显示字符信息。

使用GUI Guider工具开发嵌入式GUI应用 (3) - 使用label组件

引言

本节讲述在GUI Guider中,应用各种UI的基本元素,并顺利部署到MCU的过程。在GUI Guider中使用各LVGL的组件时,将会涉及到GUI Guider的操作,以及将某些组件额外生成的源码添加到Keil工程中。至于具体产品中的UI应用,可以是这些基本UI元素的组合使用,以实现更加丰富的显示效果。

在本文中,将说明使用通过GUI Guider创建并使用LVGL的label组件显示字符信息。

在GUI Guider工程中创建label组件

在新建GUI Guider工程搭建MCU运行时的框架工程时,曾使用了label组件实现在屏幕上显示一个“Hello World”字符串的演示效果。Label是GUI Guider中最简单的组件,可用于显示字符。

当需要为某个页面添加一个显示字符串的对象时,可在编辑区域左边的工具栏中选择label按钮,此时,在组件窗口中就可以看到,当前的页面screen下出现了一个label_1的对象。如图x所示。

在这里插入图片描述

图x 新增label对象

双击在当前页面上出现的label对象,可以在编辑区域的右侧激活该对象的属性设置对话框,如图x所示。在其中,可以执行该对象的名字、位置、文本内容、字体、颜色等属性。当然,既然是在图形编辑界面,对象的位置也可以通过在图形编辑区拖拽对象来调整。

在这里插入图片描述

图x 编辑label对象属性

然后,重新生成代码。在运行时的Keil工程已经包含了静态页面的源文件,因此不用额外再执行添加文件的操作。但实际上,这里新生成的源码位于./gui/generated/setup_scr_screen.c文件中。有源码如下:

/*
 * Copyright 2023 NXP
 * SPDX-License-Identifier: MIT
 * The auto-generated can only be used on NXP devices
 */

#include "lvgl.h"
#include <stdio.h>
#include "gui_guider.h"
#include "events_init.h"
#include "custom.h"


void setup_scr_screen(lv_ui *ui){
   
   

	//Write codes screen
	ui->screen = lv_obj_create(NULL);
	lv_obj_set_scrollbar_mode(ui->screen, LV_SCROLLBAR_MODE_OFF);

	//Set style for screen. Part: LV_PART_MAIN, State: LV_STATE_DEFAULT
	lv_obj_set_style_bg_color(ui->screen, lv_color_make(0xff, 0xff, 0xff), LV_PART_MAIN|LV_STATE_DEFAULT);
	lv_obj_set_style_bg_grad_c
### ESP32 使用 GUI-Guider 进行按键事件处理 在ESP32项目中利用GUI-Guider设计图形用户界面时,实现按键事件处理是一个常见的需求。通过定义回调函数来响应特定的按键操作,可以有效地增强用户体验。 #### 定义按键对象及其属性设置 首先,在GUI-Guider的设计界面上添加所需的按键组件,并配置其基本外观和位置等属性[^1]。对于每一个希望监听点击行为的对象而言,都需要指定相应的ID以便后续编程调用。 #### 创建回调函数用于捕捉按键动作 为了能够捕获用户的交互活动,比如按下某个按钮的动作,应该编写专门针对这些事件类型的处理器逻辑。下面给出了一段Python风格伪代码作为示例说明: ```python def button_event_handler(obj, event): if event == lv.EVENT.CLICKED: print("Button was clicked") ``` 此部分实际应采用C/C++语法完成编码工作,因为大多数嵌入式系统开发都是基于这两种语言进行的;上述例子仅用来展示概念上的理解方式[^2]。 #### 注册事件至目标控件 最后一步就是把之前准备好的`button_event_handler()`关联给具体的UI元素(即前面提到过的带有唯一标识符的按键)。这通常是在初始化阶段完成的任务之一,确保每当发生预期中的互动情况时都能触发对应的反应机制。 ```c lv_obj_t *btn = lv_btn_create(lv_scr_act()); /* Create a button on the active screen */ lv_obj_set_pos(btn, 10, 10); /* Set its position */ lv_obj_set_size(btn, 80, 50); /* Set size */ /* Add label to the button */ lv_obj_t *label = lv_label_create(btn); lv_label_set_text(label, "Click me"); /* Assign callback function */ lv_obj_add_event_cb(btn, button_event_handler, LV_EVENT_ALL, NULL); ``` 以上代码片段展示了如何在一个简单的场景下创建一个带标签文字“Click me”的按钮实例,并为其分配了一个通用型别的事件侦听器,当任何种类的事情发生在该部件之上都会激活预先设定好处理流程[^3]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值