LVGL学习笔记9 - 标签Label

目录

1. 显示字符串

1.1 lv_label_set_text

1.2 lv_label_set_text_fmt

1.3 lv_label_set_text_static

2. 设置长字符串模式

3. 改变颜色

3.1 改变背景颜色和对比度

3.2 设置字符串颜色

3.2.1 设置Style的字符串颜色

3.2.2 设置对象的字符串颜色

3.2.3 局部改色


显示字符串是通过对象Label实现的。Label的Parts只有LV_LABEL_PART_MAIN。标签通过lv_label_create创建。

lv_obj_t * lv_label_create(lv_obj_t * parent)

1. 显示字符串

1.1 lv_label_set_text

void lv_label_set_text(lv_obj_t * obj, const char * text)

当参数text == NULL时,显示默认的字符串。 

1.2 lv_label_set_text_fmt

格式化显示字符串,功能类似printf。例如

lv_label_set_text_fmt(label1, "Hello World!%d", 12);

 

1.3 lv_label_set_text_static

和lv_label_set_text类似,区别是lv_label_set_text的text参数会分配在动态内存中,而lv_label_set_text_static的text参数是直接使用给定的缓冲区。

2. 设置长字符串模式

当字符串长度超过Label长度,LVGL提供5种显示模式。

enum {
    LV_LABEL_LONG_WRAP,             /**< Keep the object width, wrap the too long lines and expand the object height*/
    LV_LABEL_LONG_DOT,              /**< Keep the size and write dots at the end if the text is too long*/
    LV_LABEL_LONG_SCROLL,           /**< Keep the size and roll the text back and forth*/
    LV_LABEL_LONG_SCROLL_CIRCULAR,  /**< Keep the size and roll the text circularly*/
    LV_LABEL_LONG_CLIP,             /**< Keep the size and clip the text out of it*/
};
typedef uint8_t lv_label_long_mode_t;

void lv_label_set_long_mode(lv_obj_t * obj, lv_label_long_mode_t long_mode)

调用这个函数必须是设置Size之前。

    lv_label_set_long_mode(label1, LV_LABEL_LONG_DOT);
    lv_obj_set_size(label1, LV_PCT(100), LV_PCT(20));

LV_LABEL_LONG_WRAP - 换行,默认的模式。

LV_LABEL_LONG_DOT - 将最后3个字符替换为点。 注意当Label高度可以放下整个字符串时,字符串会先换行。

LV_LABEL_LONG_SCROLL - 水平或垂直来回滚动模式,水平方向优先级更高。

LV_LABEL_LONG_SCROLL_CIRCULAR - 水平或垂直循环滚动模式,水平方向优先级更高。

LV_LABEL_LONG_CLIP - 截断模式

 

3. 改变颜色

3.1 改变背景颜色和对比度

通过Style设置,默认对比度是0,即完全透明。

void lv_obj_set_style_bg_opa(struct _lv_obj_t * obj, lv_opa_t value, lv_style_selector_t selector)

 将对比度改为128

lv_obj_set_style_bg_opa(label1, 128, 0);

默认的背景颜色是白色,即0xFFFFFF。

void lv_obj_set_style_bg_color(struct _lv_obj_t * obj, lv_color_t value, lv_style_selector_t selector)

 将背景颜色改为红色0xFF0000。

lv_obj_set_style_bg_color(label1, lv_color_hex(0xFF0000), 0);

3.2 设置字符串颜色

3.2.1 设置Style的字符串颜色

void lv_style_set_text_color(lv_style_t * style, lv_color_t value)

3.2.2 设置对象的字符串颜色

void lv_obj_set_style_text_color(struct _lv_obj_t * obj, lv_color_t value, lv_style_selector_t selector)

将颜色改为红色

lv_obj_set_style_text_color(label1, lv_color_hex(0xFF0000), 0);

3.2.3 局部改色

 首先要通过API函数lv_label_set_recolor使能局部改色功能。

lv_label_set_recolor(label1, true)

字符串中加入关键字‘#’设定颜色,语法:

#颜色 字符串#

其中颜色和字符串之间有个空格。

例如将字符串“It is a long string!”中的“It”显示为红色,其他为默认色。

lv_label_set_recolor(label1, true);
lv_label_set_text(label1, "#FF0000 It# is a long string!");

智能网联汽车的安全员高级考试涉及多个方面的专业知识,包括但不限于自动驾驶技术原理、车辆传感器融合、网络安全防护以及法律法规等内容。以下是针对该主题的一些核心知识解析: ### 关于智能网联车安全员高级考试的核心内容 #### 1. 自动驾驶分级标准 国际自动机工程师学会(SAE International)定义了六个级别的自动驾驶等级,从L0到L5[^1]。其中,L3及以上级别需要安全员具备更高的应急处理能力。 #### 2. 车辆感知系统的组成与功能 智能网联车通常配备多种传感器,如激光雷达、毫米波雷达、摄像头和超声波传感器等。这些设备协同工作以实现环境感知、障碍物检测等功能[^2]。 #### 3. 数据通信与网络安全 智能网联车依赖V2X(Vehicle-to-Everything)技术进行数据交换,在此过程中需防范潜在的网络攻击风险,例如中间人攻击或恶意软件入侵[^3]。 #### 4. 法律法规要求 不同国家和地区对于无人驾驶测试及运营有着严格的规定,考生应熟悉当地交通法典中有关自动化驾驶部分的具体条款[^4]。 ```python # 示例代码:模拟简单决策逻辑 def decide_action(sensor_data): if sensor_data['obstacle'] and not sensor_data['emergency']: return 'slow_down' elif sensor_data['pedestrian_crossing']: return 'stop_and_yield' else: return 'continue_driving' example_input = {'obstacle': True, 'emergency': False, 'pedestrian_crossing': False} action = decide_action(example_input) print(f"Action to take: {action}") ``` 需要注意的是,“同学”作为特定平台上的学习资源名称,并不提供官方认证的标准答案集;建议通过正规渠道获取教材并参加培训课程来准备此类资格认证考试
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值