当前位置: 首页 > news >正文

使用ZYNQ芯片和LVGL框架实现用户高刷新UI设计系列教程(第五讲)

在上一讲我们讲解了按键回调函数的自定义函数的用法,这一讲继续讲解回调函数的另一种用法。
首先我们将上一讲做好的按键名称以及自定义回调事件中的按键名称修改,改为默认模式为“open”当点击按键时进入回调函数将按键名称改为“close”,具体如下图所示:
在这里插入图片描述
然后按照上一讲的讲解找到自定义函数,将opoen修改为close,具体如下图所示:在这里插入图片描述
然后在左侧的工具栏中选择led控件,添加到按键的正上方放大,并且修改默认颜色为黑色。在这里插入图片描述
右键按键控件选择事件添加,在事件添加中点击clicked信号右侧的加号添加需要绑定的事件。在这里插入图片描述
在触发事件中选择需要做出回应的对象,这里我们点击led_1控件,点击确认。在这里插入图片描述
点击clicked信号右上角的if按键,在弹出的弹窗中点击加号,在if右侧的条件栏填写“flag_btnflase”,点击确认。Flag_btn在上一讲代码中用来判断按键的状态,false表示当前已经按下,true表示当前按键未被按下。在这里插入图片描述
然后点击led_1左侧的加号,添加触发的条件限制“flag_btn
false”,在右侧加号中选择改控件要做出的反应,在这里我们选择色彩修改为黄色,模拟当按键按下后灯泡亮起。在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
最后我们根据之前的操作,为else条件添加led_1控件变黑的动作。在这里插入图片描述
到此为止,模拟按键打开灯泡的demo就做好了,以下是回调事件中的代码:
static void screen_btn_1_event_handler (lv_event_t *e)
{
lv_event_code_t code = lv_event_get_code(e);
switch (code) {
case LV_EVENT_CLICKED:
{
//控制按键字体的变化
btn_clicked();
if (flag_btn==false) {
//改变led_1为黄色
lv_led_set_color(guider_ui.screen_led_1, lv_color_hex(0xeff316));
} else {
//改变led_1为黑色
lv_led_set_color(guider_ui.screen_led_1, lv_color_hex(0x000000));
}
break;
}
default:
break;
}
}
以下是led控件的相关函数:
//基于父控件创建led_1控件
ui->screen_led_1 = lv_led_create(ui->screen);
//控制led_1的亮度,亮度范围为0~255
lv_led_set_brightness(ui->screen_led_1, 255);
//设置led_1的颜色为黑色
lv_led_set_color(ui->screen_led_1, lv_color_hex(0x000000));
//设置led_1的位置及其大小
lv_obj_set_pos(ui->screen_led_1, 128, 100);
lv_obj_set_size(ui->screen_led_1, 214, 220);
以下是led相关函数,具体使用请查看适合版本的官方手册。
• lv_led_create: 创建 LED 控件。
• lv_led_set_on: 设置 LED 是否点亮。
• lv_led_set_color: 设置 LED 的颜色。
• lv_led_set_brightness: 设置 LED 的亮度。
• lv_led_get_color: 获取 LED 的颜色。
• lv_led_get_brightness: 获取 LED 的亮度。
• lv_led_set_style: 设置 LED 的样式。

下一期我们将讲其他控件的基础使用。

第五讲视频

本文章由威三学社出品
对课程感兴趣可以私信联系

相关文章:

  • 寻找重复数 - LeetCode 287 题解笔记
  • Linux 系统检测进程死锁的方法
  • 今日 GitHub 热门项目大赏,你 pick 谁?
  • 4.go语言数组
  • 1.1 计算机网络的概念
  • 基于python的4个小游戏(免费直接使用)
  • LLaMA-Factory使用实战
  • Fiddler抓取HTTPS
  • Python中的Requests库
  • 使用VSCODE导致CPU占用率过高的处理方法
  • 【力扣hot100题】(001)字母异位词分组
  • Java 并发编程面经
  • RK3588,V4l2 读取Gmsl相机, Rga yuv422转换rgb (mmap)
  • 港中文迈向安全的具身AI!EARBench:基础模型在具身AI任务规划中的物理风险评估
  • Pytorch--tensor.view()
  • VSCode Flutter 快捷键
  • swagger上传图片请求报错
  • 【嵌入式硬件测试之道连载之第五章:嵌入式硬件接口测试】
  • 我的创作纪念日——三周年
  • leetcode_字符串 3. 无重复字符的最长子串
  • 如何查找做网站的服务商/企业网站建设方案模板
  • 把网站做成微信小程序/网络推广引流有哪些渠道
  • 个人做的卖货网站/软文发稿网站
  • 广州网站建设星珀/上海aso苹果关键词优化
  • 珠海网站制作网络公司/百度一下图片识别
  • 用fw做网站页面/百度首页排名优化价格