Description
How is the transition between windows? For example, there are window 1 window 2 window 3. There are 3 buttons on the main screen. When I press button 1, window 1 will open, when I press the close button, it will close. Other buttons will continue like this.
I did this simply, but how can I stop or delete the previous screen (home screen) when switching from the home screen to the window?
My LCD is 800x480
What MCU/Processor/Board and compiler are you using?
STM32f429ZI
What LVGL version are you using?
V6
What do you want to achieve?
How is the transition between windows?
What have you tried so far?
I tried the lv_obj_del () command but the program usually crashed
Code to reproduce
static void btn1_event_cb(lv_obj_t * btn, lv_event_t event)
{
if(event == LV_EVENT_RELEASED) {
lv_obj_t * win = lv_win_create(lv_scr_act(), NULL);
lv_win_set_title(win, “Button 1 Win”);
lv_obj_set_size(win, 400, 400);
lv_obj_t * close_btn = lv_win_add_btn(win, LV_SYMBOL_CLOSE);
lv_obj_set_event_cb(close_btn, lv_win_close_event_cb);
lv_win_add_btn(win, LV_SYMBOL_SETTINGS);
lv_obj_align(win, NULL, LV_ALIGN_CENTER, 0, 0);
lv_obj_t * txt = lv_label_create(win, NULL);
lv_label_set_text(txt, "Exam1");
}
}
static void btn2_event_cb(lv_obj_t * btn, lv_event_t event)
{
if(event == LV_EVENT_RELEASED) {
lv_obj_t * win = lv_win_create(lv_scr_act(), NULL);
lv_win_set_title(win, “Button 2 Win”);
lv_obj_set_size(win, 400, 400);
lv_obj_t * close_btn = lv_win_add_btn(win, LV_SYMBOL_CLOSE);
lv_obj_set_event_cb(close_btn, lv_win_close_event_cb);
lv_win_add_btn(win, LV_SYMBOL_SETTINGS);
lv_obj_align(win, NULL, LV_ALIGN_CENTER, 0, 0);
lv_obj_t * txt = lv_label_create(win, NULL);
lv_label_set_text(txt, "Exam2");
}
}
static void btn3_event_cb(lv_obj_t * btn, lv_event_t event)
{
if(event == LV_EVENT_RELEASED) {
lv_obj_t * win = lv_win_create(lv_scr_act(), NULL);
lv_win_set_title(win, “Button 3 Win”);
lv_obj_set_size(win, 400, 400);
lv_obj_t * close_btn = lv_win_add_btn(win, LV_SYMBOL_CLOSE);
lv_obj_set_event_cb(close_btn, lv_win_close_event_cb);
lv_win_add_btn(win, LV_SYMBOL_SETTINGS);
lv_obj_align(win, NULL, LV_ALIGN_CENTER, 0, 0);
lv_obj_t * txt = lv_label_create(win, NULL);
lv_label_set_text(txt, "Exam3");
}
}
void exam(void)
{
lv_obj_t *tabview;
tabview = lv_tabview_create(lv_scr_act(), NULL);
lv_obj_t * btn1 = lv_btn_create(lv_scr_act(), NULL);
lv_obj_t * btn2 = lv_btn_create(lv_scr_act(), NULL);
lv_obj_t * btn3 = lv_btn_create(lv_scr_act(), NULL);
lv_obj_set_pos(btn1, 10, 350);
lv_obj_set_pos(btn2, 190, 350);
lv_obj_set_pos(btn3, 370, 350);
lv_obj_set_size(btn1, 150, 100);
lv_obj_set_size(btn2, 150, 100);
lv_obj_set_size(btn3, 150, 100);
lv_obj_t * labelButon1 = lv_label_create(btn1, NULL);
lv_obj_t * labelButon2 = lv_label_create(btn2, NULL);
lv_obj_t * labelButon3 = lv_label_create(btn3, NULL);
lv_label_set_text(labelButon1, "BUTTON 1");
lv_label_set_text(labelButon2, "BUTTON 2");
lv_label_set_text(labelButon3, "BUTTON 3");
lv_obj_set_event_cb(btn1, btn1_event_cb);
lv_obj_set_event_cb(btn2, btn2_event_cb);
lv_obj_set_event_cb(btn3, btn3_event_cb);
}