在STM32F407上实现LVGL页面切换时怎么编写程序
#include "main.h"
#include "GUI_App.h"
#include "lvgl.h"
#include "lv_port_indev.h"
static void btn_event_cb1(lv_event_t * event)
{
lv_obj_t *btn = lv_event_get_target(event); //获得事件最初瞄准的对象。即使事件是冒泡的,也是一样的。
if(event->code == LV_EVENT_CLICKED)
{
static uint8_t cnt = 0;
cnt++;
/*Get the first child of the button which is the label and change its text*/
lv_obj_t * label = lv_obj_get_child(btn, NULL);
lv_label_set_text_fmt(label, "Button1: %d", cnt);
}
}
static void btn_event_cb2(lv_event_t * event)
{
lv_obj_t *btn = lv_event_get_target(event); //获得事件最初瞄准的对象。即使事件是冒泡的,也是一样的。
if(event->code == LV_EVENT_CLICKED)
{
static uint8_t cnt = 0;
cnt++;
/*Get the first child of the button which is the label and change its text*/
lv_obj_t * label = lv_obj_get_child(btn, NULL);
lv_label_set_text_fmt(label, "Button2: %d", cnt);
}
}
static void btn_event_cb3(lv_event_t * event)
{
lv_obj_t *btn = lv_event_get_target(event); //获得事件最初瞄准的对象。即使事件是冒泡的,也是一样的。
if(event->code == LV_EVENT_CLICKED)
{
static uint8_t cnt = 0;
cnt++;
/*Get the first child of the button which is the label and change its text*/
lv_obj_t * label = lv_obj_get_child(btn, NULL);
lv_label_set_text_fmt(label, "Button3: %d", cnt);
}
}
static void btn_event_cb4(lv_event_t * event)
{
lv_obj_t *btn = lv_event_get_target(event); //获得事件最初瞄准的对象。即使事件是冒泡的,也是一样的。
if(event->code == LV_EVENT_CLICKED)
{
static uint8_t cnt = 0;
cnt++;
/*Get the first child of the button which is the label and change its text*/
lv_obj_t * label = lv_obj_get_child(btn, NULL);
lv_label_set_text_fmt(label, "Button4: %d", cnt);
}
}
void lvgl_first_UI_demo(void)
{
//button1
static lv_grad_dsc_t grad_sunset;
lv_obj_t * btn1 = lv_btn_create(lv_scr_act());
lv_obj_set_style_radius(btn1, LV_RADIUS_CIRCLE, 0); // 添加按钮对象的圆角弧度样
lv_obj_set_pos(btn1, 102, 10); // 设置按钮位置,即X和Y坐标
lv_obj_set_size(btn1, 120, 120); // 设置对象大小,宽度和高度
grad_sunset.stops[0] = (lv_gradient_stop_t){ .color = lv_palette_main(LV_PALETTE_RED), .frac = 45 };
grad_sunset.stops[1] = (lv_gradient_stop_t){ .color = lv_palette_main(LV_PALETTE_GREEN), .frac = 128 };
grad_sunset.stops[2] = (lv_gradient_stop_t){ .color = lv_palette_main(LV_PALETTE_BLUE), .frac = 216 };
grad_sunset.stops_count = 3;
grad_sunset.dir = LV_GRAD_DIR_VER; // 纵向颜色改变
lv_obj_set_style_bg_grad(btn1, &grad_sunset, 0); //红->绿->蓝
lv_obj_add_event_cb(btn1, (lv_event_cb_t)btn_event_cb1, LV_EVENT_CLICKED, NULL);
lv_obj_t * label1 = lv_label_create(btn1);
lv_label_set_text(label1, "Button1");
lv_obj_center(label1);
//button2
lv_obj_t * btn2 = lv_btn_create(lv_scr_act());
lv_obj_set_pos(btn2, 5, 160);
lv_obj_set_size(btn2, 100, 50);
lv_obj_set_style_bg_color(btn2, lv_palette_main(LV_PALETTE_RED), 0);//将按键背景色改为红色
lv_obj_add_event_cb(btn2, (lv_event_cb_t)btn_event_cb2, LV_EVENT_CLICKED, NULL);
lv_obj_t * label2 = lv_label_create(btn2);
lv_label_set_text(label2, "Button2");
lv_obj_center(label2);
//button3
lv_obj_t * btn3 = lv_btn_create(lv_scr_act());
lv_obj_set_pos(btn3, 110, 160);
lv_obj_set_size(btn3, 100, 50);
lv_obj_set_style_bg_color(btn3, lv_palette_main(LV_PALETTE_GREEN), 0);//将按键背景色改为绿色
lv_obj_add_event_cb(btn3, (lv_event_cb_t)btn_event_cb3, LV_EVENT_CLICKED, NULL);
lv_obj_t * label3 = lv_label_create(btn3);
lv_label_set_text(label3, "Button3");
lv_obj_center(label3);
//button4
lv_obj_t * btn4 = lv_btn_create(lv_scr_act());
lv_obj_set_pos(btn4, 215, 160);
lv_obj_set_size(btn4, 100, 50);
lv_obj_set_style_bg_color(btn4, lv_palette_main(LV_PALETTE_BLUE), 0);//将按键背景色改为蓝色
lv_obj_add_event_cb(btn4, (lv_event_cb_t)btn_event_cb4, LV_EVENT_CLICKED, NULL);
lv_obj_t * label4 = lv_label_create(btn4);
lv_label_set_text(label4, "Button4");
lv_obj_center(label4);
}
只有一个页面,页面有4个按键
实训?